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