hdf5/bin/chkmanifest
Albert Cheng eb60599a77 [svn-r2362] Changed the file searching pattern to look for end of line to match
a complete file name.  This distinguish file ./config/unicos from
./config/unicosmk.
Tossed in a cleanup feature by removing the temporary file when finished.
2000-06-07 15:41:49 -05:00

47 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# Check that all the files in MANIFEST exist and that (if this is a
# CVS checkout) that all the CVS-managed files appear in the
# MANIFEST.
verbose=yes
MANIFEST=/tmp/H5_MANIFEST.$$
# clean up $MANIFEST file when exits
trap "rm -f $MANIFEST" 0
# Copy the manifest file to get a list of file names.
grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST
test "$verbose" && echo " Checking MANIFEST..." 1>&2
test -f $MANIFEST || exit 1
for file in `cat $MANIFEST`; do
if [ ! -f $file ]; then
echo "- $file"
fail=yes
fi
done
for cvs in `find . -type d -name CVS -print`; do
path=`echo $cvs |sed 's/\/CVS//'`
for file in `grep '^\/' $cvs/Entries |cut -d/ -f2`; do
if (grep $path/$file$ $MANIFEST >/dev/null); then
:
else
echo "+ $path/$file"
fail=yes
fi
done
done
if [ "X$fail" = "Xyes" ]; then
cat 1>&2 <<EOF
The MANIFEST is out of date. Files marked with a minus sign (-) no
longer exist; files marked with a plus sign (+) are CVS-managed but do
not appear in the MANIFEST. Please remedy the situation and try again.
EOF
exit 1
fi
test "$verbose" && echo " The MANIFEST is up to date." 1>&2
exit 0