1 1.3 mikel #! /bin/sh -- 2 1.3 mikel # 3 1.22 lukem # $NetBSD: checkflist,v 1.22 2003/09/30 06:23:43 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.22 lukem : ${MKTEMP=mktemp} 15 1.22 lukem SDIR=$(${MKTEMP} -d /tmp/${prog}.XXXXXX) 16 1.20 lukem 17 1.20 lukem es=0 18 1.20 lukem cleanup() 19 1.20 lukem { 20 1.20 lukem /bin/rm -rf $SDIR 21 1.20 lukem if [ $es -gt 255 ] ; then 22 1.20 lukem es=255 23 1.20 lukem fi 24 1.20 lukem exit $es 25 1.20 lukem } 26 1.20 lukem trap cleanup 0 2 3 13 # EXIT INT QUIT PIPE 27 1.20 lukem 28 1.20 lukem 29 1.9 ross origin=. 30 1.10 perry xargs="" 31 1.10 perry dargs="" 32 1.15 lukem metalog= 33 1.22 lukem allowextra=false 34 1.22 lukem allowmissing=false 35 1.10 perry 36 1.10 perry # handle args 37 1.10 perry while : ; do 38 1.10 perry case $1 in 39 1.10 perry -x11) 40 1.10 perry xargs="-x" 41 1.18 tron origin="./etc/X11 ./etc/fonts ./usr/X11R6" 42 1.10 perry ;; 43 1.10 perry -both) 44 1.10 perry xargs="-b" 45 1.10 perry ;; 46 1.22 lukem -M) 47 1.15 lukem metalog=$2; shift 48 1.15 lukem ;; 49 1.22 lukem -e) 50 1.22 lukem allowextra=true 51 1.22 lukem ;; 52 1.22 lukem -m) 53 1.22 lukem allowmissing=true 54 1.22 lukem ;; 55 1.10 perry -*) 56 1.10 perry cat 1>&2 <<USAGE 57 1.22 lukem Usage: ${prog} [-x11|-both] [-M metalog] [-e] [-m] 58 1.10 perry -x11 check only x11 lists 59 1.10 perry -both check netbsd + x11 lists 60 1.15 lukem -M metalog metalog file 61 1.22 lukem -e extra files are not considered an error 62 1.22 lukem -m missing files are not considered an error 63 1.10 perry USAGE 64 1.10 perry exit 1 65 1.10 perry ;; 66 1.10 perry *) 67 1.10 perry break 68 1.10 perry ;; 69 1.10 perry esac 70 1.10 perry shift 71 1.10 perry done 72 1.10 perry 73 1.15 lukem if [ -n "$metalog" ]; then 74 1.15 lukem case "$metalog" in 75 1.15 lukem ${DESTDIR}/*) 76 1.17 thorpej # Metalog would be noticed, so make sure it gets 77 1.17 thorpej # ignored. 78 1.17 thorpej metalog="./${metalog#${DESTDIR}/}" 79 1.15 lukem ;; 80 1.17 thorpej *) 81 1.17 thorpej metalog="" 82 1.15 lukem esac 83 1.15 lukem fi 84 1.15 lukem 85 1.15 lukem 86 1.20 lukem sh makeflist $xargs $dargs > $SDIR/flist 87 1.10 perry 88 1.15 lukem ( 89 1.15 lukem cd $DESTDIR 90 1.17 thorpej find $origin \( -type d -o -type f -o -type l \) 91 1.17 thorpej ) | ( 92 1.17 thorpej while read line; do 93 1.19 lukem case "$line" in 94 1.19 lukem $metalog) 95 1.19 lukem ;; 96 1.19 lukem *) 97 1.19 lukem echo $line 98 1.19 lukem ;; 99 1.19 lukem esac 100 1.17 thorpej done 101 1.20 lukem ) | sort > $SDIR/files 102 1.15 lukem 103 1.20 lukem comm -23 $SDIR/flist $SDIR/files > $SDIR/missing 104 1.20 lukem comm -13 $SDIR/flist $SDIR/files > $SDIR/extra 105 1.15 lukem 106 1.20 lukem if [ -s $SDIR/extra ]; then 107 1.20 lukem echo "" 108 1.20 lukem echo "============ extra files ===============" 109 1.20 lukem echo "Files in DESTDIR but missing from flist." 110 1.20 lukem echo "File is obsolete or flist is out of date ?" 111 1.22 lukem if ${allowextra}; then 112 1.22 lukem echo "This is non-fatal." 113 1.22 lukem else 114 1.22 lukem es=1 115 1.22 lukem fi 116 1.20 lukem echo "------------------------------------------" 117 1.20 lukem cat $SDIR/extra 118 1.20 lukem echo "========= end of extra files ===========" 119 1.20 lukem echo "" 120 1.20 lukem fi 121 1.20 lukem 122 1.20 lukem if [ -s $SDIR/missing ]; then 123 1.20 lukem echo "" 124 1.20 lukem echo "=========== missing files ==============" 125 1.20 lukem echo "Files in flist but missing from DESTDIR." 126 1.20 lukem echo "File wasn't installed ?" 127 1.22 lukem if ${allowmissing}; then 128 1.22 lukem echo "This is non-fatal." 129 1.22 lukem else 130 1.22 lukem es=1 131 1.22 lukem fi 132 1.20 lukem echo "------------------------------------------" 133 1.20 lukem cat $SDIR/missing 134 1.20 lukem echo "======== end of missing files ==========" 135 1.20 lukem echo "" 136 1.15 lukem fi 137 1.20 lukem 138 1.20 lukem exit 0 # cleanup will exit with $es 139