Home | History | Annotate | Line # | Download | only in sets
checkflist revision 1.19
      1   1.3    mikel #! /bin/sh --
      2   1.3    mikel #
      3  1.19    lukem #	$NetBSD: checkflist,v 1.19 2003/07/10 03:19:15 lukem Exp $
      4   1.3    mikel #
      5   1.3    mikel # Verify output of makeflist against contents of $DESTDIR.
      6   1.1      cgd 
      7  1.15    lukem if [ -z "$DESTDIR" ]; then
      8  1.15    lukem 	echo "DESTDIR must be set"
      9   1.1      cgd 	exit 1
     10  1.15    lukem fi
     11  1.15    lukem 
     12  1.15    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.15    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.18     tron 		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.15    lukem 	-M*)
     39  1.15    lukem 		metalog=$2; shift
     40  1.15    lukem 		;;
     41  1.10    perry 	-*)
     42  1.10    perry 		cat 1>&2 <<USAGE
     43  1.15    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.15    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.15    lukem if [ -n "$metalog" ]; then
     60  1.15    lukem 	case "$metalog" in
     61  1.15    lukem 	${DESTDIR}/*)
     62  1.17  thorpej 		# Metalog would be noticed, so make sure it gets
     63  1.17  thorpej 		# ignored.
     64  1.17  thorpej 		metalog="./${metalog#${DESTDIR}/}"
     65  1.15    lukem 		;;
     66  1.17  thorpej 	*)
     67  1.17  thorpej 		metalog=""
     68  1.15    lukem 	esac
     69  1.15    lukem fi
     70  1.15    lukem 
     71  1.15    lukem 
     72  1.10    perry sh makeflist $xargs $dargs > $tmpname
     73  1.10    perry 
     74  1.15    lukem (
     75  1.15    lukem 	cd $DESTDIR
     76  1.17  thorpej 	find $origin \( -type d -o -type f -o -type l \)
     77  1.17  thorpej ) | (
     78  1.17  thorpej 	while read line; do
     79  1.19    lukem 		case "$line" in
     80  1.19    lukem 		$metalog)
     81  1.19    lukem 			;;
     82  1.19    lukem 		*)
     83  1.19    lukem 			echo $line
     84  1.19    lukem 			;;
     85  1.19    lukem 		esac
     86  1.17  thorpej 	done
     87  1.15    lukem ) | sort | diff $diffargs $tmpname -
     88  1.15    lukem rv=$?
     89  1.15    lukem 
     90   1.9     ross /bin/rm -f $tmpname
     91  1.15    lukem 
     92  1.15    lukem if [ $rv -ne 0 ]; then
     93  1.15    lukem 	echo "${prog}: flist inconsistencies found"
     94  1.15    lukem 	if [ -z "$diffargs" ]; then
     95  1.15    lukem 		echo "${prog}: key to output:"
     96  1.16    lukem 		echo "  <  file is in flist but missing from DESTDIR"
     97  1.16    lukem 		echo "     (file wasn't installed ?)"
     98  1.16    lukem 		echo "  >  file is in DESTDIR but missing from flist"
     99  1.16    lukem 		echo "     (file is obsolete or flist is out of date ?)"
    100  1.15    lukem 	fi
    101  1.15    lukem fi
    102  1.15    lukem exit $rv
    103