checkflist revision 1.16
11.3Smikel#! /bin/sh --
21.3Smikel#
31.16Slukem#	$NetBSD: checkflist,v 1.16 2002/08/29 04:19:36 lukem Exp $
41.3Smikel#
51.3Smikel# Verify output of makeflist against contents of $DESTDIR.
61.1Scgd
71.15Slukemif [ -z "$DESTDIR" ]; then
81.15Slukem	echo "DESTDIR must be set"
91.1Scgd	exit 1
101.15Slukemfi
111.15Slukem
121.15Slukemprog=${0##*/}
131.1Scgd
141.9Srossorigin=.
151.9Srosstmpname=/tmp/_CHECK.$$
161.10Sperry
171.10Sperryxargs=""
181.10Sperrydargs=""
191.12Sabsdiffargs=""
201.15Slukemfindargs=
211.15Slukemmetalog=
221.10Sperry
231.10Sperry# handle args
241.10Sperrywhile : ; do
251.10Sperry	case $1 in
261.10Sperry	-x11)
271.10Sperry		xargs="-x"
281.10Sperry		origin=./usr/X11R6
291.10Sperry		;;
301.10Sperry	-both)
311.10Sperry		xargs="-b"
321.10Sperry		;;
331.12Sabs	-u)
341.12Sabs		diffargs="-u"
351.12Sabs		;;
361.12Sabs	-c)
371.12Sabs		diffargs="-c"
381.12Sabs		;;
391.15Slukem	-M*)
401.15Slukem		metalog=$2; shift
411.15Slukem		;;
421.10Sperry	-*)
431.10Sperry		cat 1>&2 <<USAGE
441.15SlukemUsage: ${prog} [-x11|-both] [-u|-c] [-M metalog]
451.10Sperry	-x11		check only x11 lists
461.10Sperry	-both		check netbsd + x11 lists
471.12Sabs	-u		output differences in "unified diff" style
481.12Sabs	-c		output differences in "context diff" style
491.15Slukem	-M metalog	metalog file
501.10SperryUSAGE
511.10Sperry		exit 1
521.10Sperry		;;
531.10Sperry	*)
541.10Sperry		break
551.10Sperry		;;
561.10Sperry	esac
571.10Sperry	shift
581.10Sperrydone
591.10Sperry
601.15Slukemif [ -n "$metalog" ]; then
611.15Slukem	case "$metalog" in
621.15Slukem	${DESTDIR}/*)
631.15Slukem		findargs="! -path ./${metalog#${DESTDIR}/} -a"
641.15Slukem		;;
651.15Slukem	esac
661.15Slukemfi
671.15Slukem
681.15Slukem
691.10Sperrysh makeflist $xargs $dargs > $tmpname
701.10Sperry
711.15Slukem(
721.15Slukem	cd $DESTDIR
731.15Slukem	find $origin $findargs \( -type d -o -type f -o -type l \)
741.15Slukem) | sort | diff $diffargs $tmpname -
751.15Slukemrv=$?
761.15Slukem
771.9Sross/bin/rm -f $tmpname
781.15Slukem
791.15Slukemif [ $rv -ne 0 ]; then
801.15Slukem	echo "${prog}: flist inconsistencies found"
811.15Slukem	if [ -z "$diffargs" ]; then
821.15Slukem		echo "${prog}: key to output:"
831.16Slukem		echo "  <  file is in flist but missing from DESTDIR"
841.16Slukem		echo "     (file wasn't installed ?)"
851.16Slukem		echo "  >  file is in DESTDIR but missing from flist"
861.16Slukem		echo "     (file is obsolete or flist is out of date ?)"
871.15Slukem	fi
881.15Slukemfi
891.15Slukemexit $rv
90