checkflist revision 1.22
11.3Smikel#! /bin/sh -- 21.3Smikel# 31.22Slukem# $NetBSD: checkflist,v 1.22 2003/09/30 06:23:43 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.22Slukem: ${MKTEMP=mktemp} 151.22SlukemSDIR=$(${MKTEMP} -d /tmp/${prog}.XXXXXX) 161.20Slukem 171.20Slukemes=0 181.20Slukemcleanup() 191.20Slukem{ 201.20Slukem /bin/rm -rf $SDIR 211.20Slukem if [ $es -gt 255 ] ; then 221.20Slukem es=255 231.20Slukem fi 241.20Slukem exit $es 251.20Slukem} 261.20Slukemtrap cleanup 0 2 3 13 # EXIT INT QUIT PIPE 271.20Slukem 281.20Slukem 291.9Srossorigin=. 301.10Sperryxargs="" 311.10Sperrydargs="" 321.15Slukemmetalog= 331.22Slukemallowextra=false 341.22Slukemallowmissing=false 351.10Sperry 361.10Sperry# handle args 371.10Sperrywhile : ; do 381.10Sperry case $1 in 391.10Sperry -x11) 401.10Sperry xargs="-x" 411.18Stron origin="./etc/X11 ./etc/fonts ./usr/X11R6" 421.10Sperry ;; 431.10Sperry -both) 441.10Sperry xargs="-b" 451.10Sperry ;; 461.22Slukem -M) 471.15Slukem metalog=$2; shift 481.15Slukem ;; 491.22Slukem -e) 501.22Slukem allowextra=true 511.22Slukem ;; 521.22Slukem -m) 531.22Slukem allowmissing=true 541.22Slukem ;; 551.10Sperry -*) 561.10Sperry cat 1>&2 <<USAGE 571.22SlukemUsage: ${prog} [-x11|-both] [-M metalog] [-e] [-m] 581.10Sperry -x11 check only x11 lists 591.10Sperry -both check netbsd + x11 lists 601.15Slukem -M metalog metalog file 611.22Slukem -e extra files are not considered an error 621.22Slukem -m missing files are not considered an error 631.10SperryUSAGE 641.10Sperry exit 1 651.10Sperry ;; 661.10Sperry *) 671.10Sperry break 681.10Sperry ;; 691.10Sperry esac 701.10Sperry shift 711.10Sperrydone 721.10Sperry 731.15Slukemif [ -n "$metalog" ]; then 741.15Slukem case "$metalog" in 751.15Slukem ${DESTDIR}/*) 761.17Sthorpej # Metalog would be noticed, so make sure it gets 771.17Sthorpej # ignored. 781.17Sthorpej metalog="./${metalog#${DESTDIR}/}" 791.15Slukem ;; 801.17Sthorpej *) 811.17Sthorpej metalog="" 821.15Slukem esac 831.15Slukemfi 841.15Slukem 851.15Slukem 861.20Slukemsh makeflist $xargs $dargs > $SDIR/flist 871.10Sperry 881.15Slukem( 891.15Slukem cd $DESTDIR 901.17Sthorpej find $origin \( -type d -o -type f -o -type l \) 911.17Sthorpej) | ( 921.17Sthorpej while read line; do 931.19Slukem case "$line" in 941.19Slukem $metalog) 951.19Slukem ;; 961.19Slukem *) 971.19Slukem echo $line 981.19Slukem ;; 991.19Slukem esac 1001.17Sthorpej done 1011.20Slukem) | sort > $SDIR/files 1021.15Slukem 1031.20Slukemcomm -23 $SDIR/flist $SDIR/files > $SDIR/missing 1041.20Slukemcomm -13 $SDIR/flist $SDIR/files > $SDIR/extra 1051.15Slukem 1061.20Slukemif [ -s $SDIR/extra ]; then 1071.20Slukem echo "" 1081.20Slukem echo "============ extra files ===============" 1091.20Slukem echo "Files in DESTDIR but missing from flist." 1101.20Slukem echo "File is obsolete or flist is out of date ?" 1111.22Slukem if ${allowextra}; then 1121.22Slukem echo "This is non-fatal." 1131.22Slukem else 1141.22Slukem es=1 1151.22Slukem fi 1161.20Slukem echo "------------------------------------------" 1171.20Slukem cat $SDIR/extra 1181.20Slukem echo "========= end of extra files ===========" 1191.20Slukem echo "" 1201.20Slukemfi 1211.20Slukem 1221.20Slukemif [ -s $SDIR/missing ]; then 1231.20Slukem echo "" 1241.20Slukem echo "=========== missing files ==============" 1251.20Slukem echo "Files in flist but missing from DESTDIR." 1261.20Slukem echo "File wasn't installed ?" 1271.22Slukem if ${allowmissing}; then 1281.22Slukem echo "This is non-fatal." 1291.22Slukem else 1301.22Slukem es=1 1311.22Slukem fi 1321.20Slukem echo "------------------------------------------" 1331.20Slukem cat $SDIR/missing 1341.20Slukem echo "======== end of missing files ==========" 1351.20Slukem echo "" 1361.15Slukemfi 1371.20Slukem 1381.20Slukemexit 0 # cleanup will exit with $es 139