Naprej Nazaj Kazalo

23. supdate

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"


Naprej Nazaj Kazalo