diff options
Diffstat (limited to 'bin/chkmanifest')
-rwxr-xr-x | bin/chkmanifest | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/bin/chkmanifest b/bin/chkmanifest new file mode 100755 index 0000000..a166fe7 --- /dev/null +++ b/bin/chkmanifest @@ -0,0 +1,42 @@ +#!/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.$$ + +# 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 + +exit 0 |