Home | History | Annotate | Line # | Download | only in sets
checkflist revision 1.14.2.3
      1       1.3  mikel #! /bin/sh --
      2       1.3  mikel #
      3  1.14.2.3  grant #	$NetBSD: checkflist,v 1.14.2.3 2003/06/20 10:20:06 grant Exp $
      4       1.3  mikel #
      5       1.3  mikel # Verify output of makeflist against contents of $DESTDIR.
      6       1.1    cgd 
      7  1.14.2.1  lukem if [ -z "$DESTDIR" ]; then
      8  1.14.2.1  lukem 	echo "DESTDIR must be set"
      9       1.1    cgd 	exit 1
     10  1.14.2.1  lukem fi
     11  1.14.2.1  lukem 
     12  1.14.2.1  lukem prog=${0##*/}
     13       1.1    cgd 
     14       1.9   ross origin=.
     15       1.9   ross tmpname=/tmp/_CHECK.$$
     16      1.10  perry 
     17      1.10  perry xargs=""
     18      1.10  perry dargs=""
     19      1.12    abs diffargs=""
     20  1.14.2.1  lukem metalog=
     21      1.10  perry 
     22      1.10  perry # handle args
     23      1.10  perry while : ; do
     24      1.10  perry 	case $1 in
     25      1.10  perry 	-x11)
     26      1.10  perry 		xargs="-x"
     27  1.14.2.3  grant 		origin="./etc/X11 ./etc/fonts ./usr/X11R6"
     28      1.10  perry 		;;
     29      1.10  perry 	-both)
     30      1.10  perry 		xargs="-b"
     31      1.10  perry 		;;
     32      1.12    abs 	-u)
     33      1.12    abs 		diffargs="-u"
     34      1.12    abs 		;;
     35      1.12    abs 	-c)
     36      1.12    abs 		diffargs="-c"
     37      1.12    abs 		;;
     38  1.14.2.1  lukem 	-M*)
     39  1.14.2.1  lukem 		metalog=$2; shift
     40  1.14.2.1  lukem 		;;
     41      1.10  perry 	-*)
     42      1.10  perry 		cat 1>&2 <<USAGE
     43  1.14.2.1  lukem Usage: ${prog} [-x11|-both] [-u|-c] [-M metalog]
     44      1.10  perry 	-x11		check only x11 lists
     45      1.10  perry 	-both		check netbsd + x11 lists
     46      1.12    abs 	-u		output differences in "unified diff" style
     47      1.12    abs 	-c		output differences in "context diff" style
     48  1.14.2.1  lukem 	-M metalog	metalog file
     49      1.10  perry USAGE
     50      1.10  perry 		exit 1
     51      1.10  perry 		;;
     52      1.10  perry 	*)
     53      1.10  perry 		break
     54      1.10  perry 		;;
     55      1.10  perry 	esac
     56      1.10  perry 	shift
     57      1.10  perry done
     58      1.10  perry 
     59  1.14.2.1  lukem if [ -n "$metalog" ]; then
     60  1.14.2.1  lukem 	case "$metalog" in
     61  1.14.2.1  lukem 	${DESTDIR}/*)
     62  1.14.2.2     he 		# Metalog would be noticed, so make sure it gets
     63  1.14.2.2     he 		# ignored.
     64  1.14.2.2     he 		metalog="./${metalog#${DESTDIR}/}"
     65  1.14.2.1  lukem 		;;
     66  1.14.2.2     he 	*)
     67  1.14.2.2     he 		metalog=""
     68  1.14.2.1  lukem 	esac
     69  1.14.2.1  lukem fi
     70  1.14.2.1  lukem 
     71  1.14.2.1  lukem 
     72      1.10  perry sh makeflist $xargs $dargs > $tmpname
     73      1.10  perry 
     74  1.14.2.1  lukem (
     75  1.14.2.1  lukem 	cd $DESTDIR
     76  1.14.2.2     he 	find $origin \( -type d -o -type f -o -type l \)
     77  1.14.2.2     he ) | (
     78  1.14.2.2     he 	while read line; do
     79  1.14.2.2     he 		test "$metalog" = "$line" || echo $line
     80  1.14.2.2     he 	done
     81  1.14.2.1  lukem ) | sort | diff $diffargs $tmpname -
     82  1.14.2.1  lukem rv=$?
     83  1.14.2.1  lukem 
     84       1.9   ross /bin/rm -f $tmpname
     85  1.14.2.1  lukem 
     86  1.14.2.1  lukem if [ $rv -ne 0 ]; then
     87  1.14.2.1  lukem 	echo "${prog}: flist inconsistencies found"
     88  1.14.2.1  lukem 	if [ -z "$diffargs" ]; then
     89  1.14.2.1  lukem 		echo "${prog}: key to output:"
     90  1.14.2.1  lukem 		echo "  <  file in flist but missing from DESTDIR"
     91  1.14.2.1  lukem 		echo "  >  file in DESTDIR but missing from flist"
     92  1.14.2.1  lukem 	fi
     93  1.14.2.1  lukem fi
     94  1.14.2.1  lukem exit $rv
     95