253d3ec330
i'll consider adding an optional switch and associated build infrastructure to enable the "non fatal extra files" functionality instead.
139 lines
2.3 KiB
Bash
Executable File
139 lines
2.3 KiB
Bash
Executable File
#! /bin/sh --
|
|
#
|
|
# $NetBSD: checkflist,v 1.21 2003/08/13 00:03:00 lukem Exp $
|
|
#
|
|
# Verify output of makeflist against contents of $DESTDIR.
|
|
|
|
if [ -z "$DESTDIR" ]; then
|
|
echo "DESTDIR must be set"
|
|
exit 1
|
|
fi
|
|
|
|
prog=${0##*/}
|
|
|
|
|
|
# Make sure we don't loop forever if mkdir will always fail.
|
|
if [ ! -d /tmp ]; then
|
|
echo /tmp is not a directory
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -w /tmp ]; then
|
|
echo /tmp is not writable
|
|
exit 1
|
|
fi
|
|
|
|
SDIR_BASE=/tmp/checkflist.$$
|
|
SDIR_SERIAL=0
|
|
|
|
while true; do
|
|
SDIR=${SDIR_BASE}.${SDIR_SERIAL}
|
|
mkdir -m 0700 ${SDIR} && break
|
|
SDIR_SERIAL=$((${SDIR_SERIAL} + 1))
|
|
done
|
|
|
|
es=0
|
|
cleanup()
|
|
{
|
|
/bin/rm -rf $SDIR
|
|
if [ $es -gt 255 ] ; then
|
|
es=255
|
|
fi
|
|
exit $es
|
|
}
|
|
trap cleanup 0 2 3 13 # EXIT INT QUIT PIPE
|
|
|
|
|
|
origin=.
|
|
xargs=""
|
|
dargs=""
|
|
metalog=
|
|
|
|
# handle args
|
|
while : ; do
|
|
case $1 in
|
|
-x11)
|
|
xargs="-x"
|
|
origin="./etc/X11 ./etc/fonts ./usr/X11R6"
|
|
;;
|
|
-both)
|
|
xargs="-b"
|
|
;;
|
|
-M*)
|
|
metalog=$2; shift
|
|
;;
|
|
-*)
|
|
cat 1>&2 <<USAGE
|
|
Usage: ${prog} [-x11|-both] [-M metalog]
|
|
-x11 check only x11 lists
|
|
-both check netbsd + x11 lists
|
|
-M metalog metalog file
|
|
USAGE
|
|
exit 1
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ -n "$metalog" ]; then
|
|
case "$metalog" in
|
|
${DESTDIR}/*)
|
|
# Metalog would be noticed, so make sure it gets
|
|
# ignored.
|
|
metalog="./${metalog#${DESTDIR}/}"
|
|
;;
|
|
*)
|
|
metalog=""
|
|
esac
|
|
fi
|
|
|
|
|
|
sh makeflist $xargs $dargs > $SDIR/flist
|
|
|
|
(
|
|
cd $DESTDIR
|
|
find $origin \( -type d -o -type f -o -type l \)
|
|
) | (
|
|
while read line; do
|
|
case "$line" in
|
|
$metalog)
|
|
;;
|
|
*)
|
|
echo $line
|
|
;;
|
|
esac
|
|
done
|
|
) | sort > $SDIR/files
|
|
|
|
comm -23 $SDIR/flist $SDIR/files > $SDIR/missing
|
|
comm -13 $SDIR/flist $SDIR/files > $SDIR/extra
|
|
|
|
if [ -s $SDIR/extra ]; then
|
|
echo ""
|
|
echo "============ extra files ==============="
|
|
echo "Files in DESTDIR but missing from flist."
|
|
echo "File is obsolete or flist is out of date ?"
|
|
echo "------------------------------------------"
|
|
cat $SDIR/extra
|
|
echo "========= end of extra files ==========="
|
|
echo ""
|
|
es=1
|
|
fi
|
|
|
|
if [ -s $SDIR/missing ]; then
|
|
echo ""
|
|
echo "=========== missing files =============="
|
|
echo "Files in flist but missing from DESTDIR."
|
|
echo "File wasn't installed ?"
|
|
echo "------------------------------------------"
|
|
cat $SDIR/missing
|
|
echo "======== end of missing files =========="
|
|
echo ""
|
|
es=1
|
|
fi
|
|
|
|
exit 0 # cleanup will exit with $es
|