checkflist revision 1.24
11.3Smikel#! /bin/sh -- 21.3Smikel# 31.24Slukem# $NetBSD: checkflist,v 1.24 2003/12/29 03:13:25 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.24Slukem: ${HOST_SH=sh} 151.22Slukem: ${MKTEMP=mktemp} 161.22SlukemSDIR=$(${MKTEMP} -d /tmp/${prog}.XXXXXX) 171.20Slukem 181.20Slukemes=0 191.20Slukemcleanup() 201.20Slukem{ 211.20Slukem /bin/rm -rf $SDIR 221.20Slukem if [ $es -gt 255 ] ; then 231.20Slukem es=255 241.20Slukem fi 251.20Slukem exit $es 261.20Slukem} 271.20Slukemtrap cleanup 0 2 3 13 # EXIT INT QUIT PIPE 281.20Slukem 291.20Slukem 301.9Srossorigin=. 311.10Sperryxargs="" 321.10Sperrydargs="" 331.15Slukemmetalog= 341.22Slukemallowextra=false 351.22Slukemallowmissing=false 361.10Sperry 371.10Sperry# handle args 381.24Slukemwhile getopts xbM:em ch; do 391.24Slukem case ${ch} in 401.24Slukem x) 411.10Sperry xargs="-x" 421.18Stron origin="./etc/X11 ./etc/fonts ./usr/X11R6" 431.10Sperry ;; 441.24Slukem b) 451.10Sperry xargs="-b" 461.10Sperry ;; 471.24Slukem M) 481.24Slukem metalog=${OPTARG} 491.15Slukem ;; 501.24Slukem e) 511.22Slukem allowextra=true 521.22Slukem ;; 531.24Slukem m) 541.22Slukem allowmissing=true 551.22Slukem ;; 561.24Slukem *) 571.10Sperry cat 1>&2 <<USAGE 581.24SlukemUsage: ${prog} [-x|-b] [-M metalog] [-e] [-m] 591.24Slukem -x check only x11 lists 601.24Slukem -b check netbsd + x11 lists 611.15Slukem -M metalog metalog file 621.22Slukem -e extra files are not considered an error 631.22Slukem -m missing files are not considered an error 641.10SperryUSAGE 651.10Sperry exit 1 661.10Sperry ;; 671.10Sperry esac 681.10Sperrydone 691.24Slukemshift $((${OPTIND} - 1)) 701.10Sperry 711.15Slukemif [ -n "$metalog" ]; then 721.15Slukem case "$metalog" in 731.15Slukem ${DESTDIR}/*) 741.17Sthorpej # Metalog would be noticed, so make sure it gets 751.17Sthorpej # ignored. 761.17Sthorpej metalog="./${metalog#${DESTDIR}/}" 771.15Slukem ;; 781.17Sthorpej *) 791.17Sthorpej metalog="" 801.15Slukem esac 811.15Slukemfi 821.15Slukem 831.15Slukem 841.24Slukem${HOST_SH} ./makeflist $xargs $dargs > $SDIR/flist 851.10Sperry 861.15Slukem( 871.15Slukem cd $DESTDIR 881.23Sdmcmahil find $origin \( -type d -o -type f -o -type l \) -print 891.17Sthorpej) | ( 901.17Sthorpej while read line; do 911.19Slukem case "$line" in 921.19Slukem $metalog) 931.19Slukem ;; 941.19Slukem *) 951.19Slukem echo $line 961.19Slukem ;; 971.19Slukem esac 981.17Sthorpej done 991.20Slukem) | sort > $SDIR/files 1001.15Slukem 1011.20Slukemcomm -23 $SDIR/flist $SDIR/files > $SDIR/missing 1021.20Slukemcomm -13 $SDIR/flist $SDIR/files > $SDIR/extra 1031.15Slukem 1041.20Slukemif [ -s $SDIR/extra ]; then 1051.20Slukem echo "" 1061.20Slukem echo "============ extra files ===============" 1071.20Slukem echo "Files in DESTDIR but missing from flist." 1081.20Slukem echo "File is obsolete or flist is out of date ?" 1091.22Slukem if ${allowextra}; then 1101.22Slukem echo "This is non-fatal." 1111.22Slukem else 1121.22Slukem es=1 1131.22Slukem fi 1141.20Slukem echo "------------------------------------------" 1151.20Slukem cat $SDIR/extra 1161.20Slukem echo "========= end of extra files ===========" 1171.20Slukem echo "" 1181.20Slukemfi 1191.20Slukem 1201.20Slukemif [ -s $SDIR/missing ]; then 1211.20Slukem echo "" 1221.20Slukem echo "=========== missing files ==============" 1231.20Slukem echo "Files in flist but missing from DESTDIR." 1241.20Slukem echo "File wasn't installed ?" 1251.22Slukem if ${allowmissing}; then 1261.22Slukem echo "This is non-fatal." 1271.22Slukem else 1281.22Slukem es=1 1291.22Slukem fi 1301.20Slukem echo "------------------------------------------" 1311.20Slukem cat $SDIR/missing 1321.20Slukem echo "======== end of missing files ==========" 1331.20Slukem echo "" 1341.15Slukemfi 1351.20Slukem 1361.20Slukemexit 0 # cleanup will exit with $es 137