Opomba : Lupino Korn /bin/ksh dobite z namestitvijo paketa pdksh*.rpm s CDja Linux contrib
Shranite to datoteko kot tekstovno datoteko in na njej izvedite chmod a+rx.
#!/bin/ksh
# CVS program supdate
# Program za posodobitev datoteke iz CVS v nacinu beri/pisi
# Vsako ime datoteke se sestoji iz treh delov: domačega imenika, podimenika
# in imena datoteke. Polna pot do datoteke je tako $HOME/$subdir/$fname.
# V CVS se ohrani enaka struktura imenikov (z vpeljavo spremenljivke
# $subdir), torej se bo pot v CVS glasila $CVSROOT/$subdir/$fname.
# V tem programu igrajo 4 spremenljivke ($HOME, $CVSROOT, $subdir in $fname)
# pomembno vlogo. Na primer, vzorčne vrednosti so lahko:
# HOME=/home/aldev, subdir=myproject/src CVSROOT=/home/cvsroot
# in fname=foo.cpp
# Pozor: Uporabljajte dvojne narekovaje, da se bodo v vrednostih spremenljivk
# ohranili presledki, npr. "$HOME/$subdir", če je $subdir enak 'some foo.cpp'
cmdname=`basename $0`
if [ $# -lt 1 ]; then
print "\nUporaba: $cmdname <ime_datoteke>"
exit
fi
# Zaradi zascite presledkov v $1 uvedi dvojne narekovaje
tmpaa="$1"
# Preveri, ali datoteka ze obstaja....
if [ $# -gt 0 -a -f $tmpaa ]; then
user_perms=" "
group_perms=" "
other_perms=" "
user_perms=`ls -l $tmpaa | awk '{print $tmpaa }' | cut -b3-3 `
group_perms=`ls -l $tmpaa | awk '{print $tmpaa }' | cut -b6-6 `
other_perms=`ls -l $tmpaa | awk '{print $tmpaa }' | cut -b9-9 `
if [ "$user_perms" = "w" -o "$group_perms" = "w" \
-o "$other_perms" = "w" ]; then
while :
do
print "\n$cmdname bo naredil rezervno kopijo delovne datoteke"
print "$tmpaa v $tmpaa.supdate_bak pred kakrsnimkoli spajanjem."
print "Ali ste prepricani, da zelite spojiti spremebe iz"
print -n "skladisca CVS v vaso delovno datoteko? <d/n> [n]: "
read ans
if [ "$ans" = "d" -o "$ans" = "D" ]; then
if [ -f $tmpaa.supdate_bak ]; then
print "\nOpozorilo: datoteka $tmpaa.supdate_bak ze obstaja!!"
print "Preglejte datoteko $tmpaa.supdate_bak in jo izbrisite."
print "Zatem poskusite znova s $cmdname "
print "Opuscam $cmdname ...."
exit
else
cp $tmpaa $tmpaa.supdate_bak
break
fi
elif [ "$ans" = "n" -o "$ans" = "N" -o "$ans" = "" -o "$ans" = " " ]; then
exit
fi
done
fi
fi
if [ -d $tmpaa ]; then
print "\nPosodobitev imenika je onemogocena, ker cvs update"
print "spaja spremebe iz skladisca v delovni imenik."
print "Zato podajte ime datoteke za posodobitev - kot je prikazano spodaj: "
print " Uporaba: $cmdname <ime_datoteke>"
exit
# cvs update
else
cvs update $tmpaa
fi
print "\nKoncan $cmdname. $cmdname uspesen."
print "\n\nRezervna kopija prvotne datoteke je v $tmpaa.supdate_bak ."
print "\nPrvotna datoteka je tako SHRANJENA v $tmpaa.supdate_bak ."
print "\n\n"
#print "\nNasvet: $cmdname <ime datoteke/imenika>\n"