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 slist
# Program za izpis vseh datotek iz CVS, ki se urejajo
# 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'
# Uporaba:
# $ slist (Vse datoteke in podimeniki)
# $ slist *.* (Vse datoteke)
# $ slist * (Vse datoteke in podimeniki)
# $ slist ab* (Vse datoteke, i se zacnejo z ab)
homedir=` echo $HOME | cut -f1 -d' ' `
if [ "$homedir" = "" ]; then
print "\nPozor: spremenljivka \$HOME ni nastavljena!!\n"
exit
fi
cur_dir=`pwd`
#echo $cur_dir
len=${#homedir}
len=$(($len + 2))
#echo $len
subdir=` echo $cur_dir | cut -b $len-2000 `
#echo "subdir je : " $subdir
# Ce je datoteko ze kdo prevzel....
cvs_root=` echo $CVSROOT | cut -f1 -d' ' `
if [ "$cvs_root" = "" ]; then
print "\nNapaka: spremenljivka \$CVSROOT ni nastavljena!!\n"
exit
fi
# Ce trenutnega imeniskega drevesa ni v korenskem imeniku CVS, koncaj
if [ ! -d $CVSROOT/$subdir ]; then
print "\nImenika $subdir ni bilo mogoce najti v $CVSROOT"
exit
fi
#echo "st. parametrov : " $#
#echo "Argument $ 1 je : " $1
#echo "vsi argumenti : " $@
if [ $# -eq 0 ]; then
#tmpbb=` find * -prune -type d `
tmpbb=` find * -maxdepth 0 -type d `
elif [ $# -eq 1 ]; then
if [ "$1" = "." ]; then
#tmpbb=` find * -prune -type d `
tmpbb=` find * -maxdepth 0 -type d `
else
if [ -d $1 -a ! -d $CVSROOT/$subdir/$1 ]; then
print "\nImenika $subdir/$1 ni v $CVSROOT"
exit
fi
tmpbb=$@
fi
else
tmpbb=$@
fi
#echo "tmpbb je : " $tmpbb
# Sedaj odstrani vsa imena imenikov, ki jih ni v korenskem imeniku CVS
dirnames=""
for ii in $tmpbb ; do
if [ -d $CVSROOT/$subdir/$ii ]; then
dirnames="$dirnames $ii "
fi
done
#echo "dirnames je : " $dirnames
if [ "$dirnames" != "" ]; then
find $dirnames -type f |
while read ii
do
# Prikazi samo tiste datoteke, ki so v sistemu CVS
if [ -f "$CVSROOT/$subdir/$ii,v" ]; then
#echo "ii is : " $ii
ls -l $ii | grep ^\-rw
fi
done;
fi
# Ugotovi vse datoteke v trenutnem imeniku
listfiles=`ls $tmpbb `
# Izbira prune ne deluje, zato uporabi maxdepth
#find * -prune -type f |
find * -maxdepth 0 -type f |
while read ii
do
for jj in $listfiles ; do
if [ "$jj" = "$ii" ]; then
# Prikazi samo datoteke, ki so v sistemu CVS
if [ -f "$CVSROOT/$subdir/$ii,v" ]; then
#echo "ii je : " $ii
ls -l $ii | grep ^\-rw
fi
fi
done
done;