The file f.attf contains mktree error messages and should be compared
to Exceptions.
The actions of mktree are quite complicated. It starts in the current
-directory checking out the .distr file, and copying it to the destination
-directory
+directory creating a version in the destination directory.
+Then it reads the .distr file.
For each file mentioned there it performes certain actions:
1- Directory Change to that directory and call yourself recursively.
2- File
- a- Try to do "co -rdistr4 destination_tree/path/destination_file"
- on succes "chmod +w destination_file"
- else
- b- Try to do "co destination_tree/destination_file"
- on succes "chmod +w destination_file" and
- give message that says "Missing distr4 entry" (or some such).
- else
- c- I Does a file LIST exist in this directory AND
+ a- Does a file LIST exist in this directory AND
is the first line of LIST equal to the name of the
destination file? If so, try to extract all the files
named in the rest of the LIST file and call the program
In this manner libraries can be distributed whose members
have their own RCS file!
else
- II try to do "cp file destination_tree/path/destination_file"
- on succes give message that says "Missing RCS entry"
- (or some such).
- else
- d-
+ b-
give message that says "Missing entry" (or some such).
Now you have the tree but not everything is kosher yet.
: ${CDIR=.}
+${DD-:} $CDIR
${DF-:} $CDIR .distr
if test ! -r $DESTDIR/$CDIR/.distr
then
then
( if cd $i
then
- ${DD-:} $CDIR $i
CDIR=$CDIR/$i
export CDIR
- exec /proj/em/distr/dwalk
+ exec /proj/em/Work/distr/dwalk
else
echo ++ Could not access $CDIR/$i
fi
-mkdir $DESTDIR/$1/$2
+case $1 in
+.) ;;
+*) mkdir $DESTDIR/$1
+ ;;
+esac
+p=`pwd`
+cd $DESTDIR/$1
+if `RV $p $p/Distr4 > /dev/null 2>&1`
+then
+ :
+else
+ echo "-- $1 no Distr4 Save Record yet"
+ if `CV $p > /dev/null 2>&1`
+ then
+ :
+ else
+ echo "-- $1 CV failed for some reason"
+ fi
+fi
-if co -q -rdistr4 $DESTDIR/$1/$2 >/dev/null 2>&1
+if [ -f $DESTDIR/$1/$2 ]
then
- chmod +w $DESTDIR/$1/$2
-elif co -q $DESTDIR/$1/$2 >/dev/null 2>&1
-then
- chmod +w $DESTDIR/$1/$2
- echo -- $1/$2 no distr4 yet
-elif grep LIST .distr >/dev/null 2>&1 &&
+ :
+elif grep LIST $DESTDIR/$1/.distr >/dev/null 2>&1 &&
(test "$2" = "`head -1 $DESTDIR/$1/LIST`") >/dev/null 2>&1 &&
${DA-false} "$1" "$2"
then
: Fetched library contents one by one and put them together
-elif cp $2 $DESTDIR/$1/$2 >/dev/null 2>&1
-then
- echo -- $1/$2 no RCS file
else
echo ++ $1/$2 not present
fi