summaryrefslogtreecommitdiffstats
path: root/bin/chkmanifest
diff options
context:
space:
mode:
Diffstat (limited to 'bin/chkmanifest')
-rwxr-xr-xbin/chkmanifest22
1 files changed, 21 insertions, 1 deletions
diff --git a/bin/chkmanifest b/bin/chkmanifest
index dd30144..4f70a6d 100755
--- a/bin/chkmanifest
+++ b/bin/chkmanifest
@@ -107,6 +107,21 @@ else
fi
fi
+# Check for duplicate entries. This can be done at any time, but it may as
+# well be sooner so that if something else fails the presence of duplicates
+# will already be known.
+errcode=0
+DUPLICATES=`perl -ne 's/#.*//; next if /^\s*$/; if ($uniq{$_}++) { print $_; }' MANIFEST`
+if [ "$DUPLICATES" ]; then
+ cat 1>&2 <<EOF
+These entries appear more than once in the MANIFEST:
+$DUPLICATES
+Please remove the duplicate lines and try again.
+
+EOF
+errcode=1
+fi
+
# Copy the manifest file to get a list of file names.
grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST
@@ -117,6 +132,7 @@ for file in `cat $MANIFEST`; do
fi
done
+
# Inspect the .svn/entries to figure out what version of svn file entry is
# used.
# The following algorithm is formed via reverse engineering.
@@ -130,7 +146,7 @@ if head -1 $svn_entry_file | grep 'xml version="1.0"' > /dev/null 2>&1;then
elif grep '^file$' $svn_entry_file > /dev/null 2>&1; then
getsvnentries=GETSVNENTRIES_14
else
- echo "Unknow svn entries format. Aborted"
+ echo "Unknown svn entries format. Aborted"
exit 1
fi
@@ -155,5 +171,9 @@ EOF
exit 1
fi
+if [ $errcode > 0 ]; then
+ exit $errcode
+fi
+
test "$verbose" && echo " The MANIFEST is up to date." 1>&2
exit 0