diff options
Diffstat (limited to 'Inventory')
-rwxr-xr-x | Inventory | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/Inventory b/Inventory new file mode 100755 index 0000000..6b16fe5 --- /dev/null +++ b/Inventory @@ -0,0 +1,204 @@ +#!/bin/sh +# +# Inventory -- take an inventory of the lsof distribution's 00MANIFEST + +# Establish trap and stty handling. + +ISIG=":" +trap '$ISIG; exit 1' 1 2 3 15 +stty -a 2>&1 | grep isig > /dev/null +if test $? -eq 0 +then + stty -a 2>&1 | egrep -e -isig > /dev/null + if test $? -eq 0 + then + ISIG="stty -isig" + stty isig + fi +fi + +# Establish echo type -- Berkeley or SYSV. + +j=`echo -n ""` +if test "X$j" = "X-n " +then + EC="\c" + EO="" +else + EC="" + EO="-n" +fi + +# Display the introduction and basic explanation. + +cat << .CAT_MARK + +This configuration step (the Inventory script) takes inventory of +the lsof distribution. The script runs for a minute or two while +it checks that all the subdirectories, information files, scripts, +header files and source files that should be present really are. + +It's not absolutely necessary that you take inventory, but it's a +good idea to do it right after the lsof distribution has been +unpacked. Once the inventory has been taken, this script creates +the file ./.ck00MAN as a signal that the inventory step has been +done. + +You can call the Inventory script directly at any time to take +inventory. You can inhibit the inventory step permanently by +creating the file ./.neverInv, and you can tell the Configure script +to skip the inventory and customization steps with the -n option. +.CAT_MARK + +END=0 +while test $END = 0 +do + echo "" + echo $EO "Do you want to take inventory (y|n) [y]? $EC" + read ANS EXCESS + if test "X$ANS" = "Xn" -o "X$ANS" = "XN" + then + exit 0 + fi + if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X" + then + END=1 + else + echo "" + echo "Please answer y or n." + fi +done + +# The current directory is assumed to be the lsof distribution home. + +D=`pwd` + +# If .ck00MAN exists, the manifest has already been checked. +# See if the caller wants to check it again. + +CK=$D/.ck00MAN +if test -r $CK +then + cat << .CAT_MARK + +====================================================================== + +The lsof distribution inventory in 00MANIFEST has already been checked. +.CAT_MARK + + END=0 + while test $END = 0 + do + echo "" + echo $EO "Do you want to check the inventory again (y|n) [n]? $EC" + read ANS EXCESS + if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X" + then + exit 0 + else + if test "X$ANS" = "Xy" -o "X$ANS" = "XY" + then + END=1 + else + echo "" + echo "Please answer y or n." + fi + fi + done +fi +echo "" + +# See if manifest exists. Exit if it does not. + +if test ! -r 00MANIFEST +then + echo "FATAL: 00MANIFEST file not found or not readable; Inventory exits." + echo "" + exit 1 +fi + +# Start the inventory. + +S="" +echo "Conducting an inventory of the lsof distribution; this will take a while." +echo "" +echo $EO "Examining ${D}:$EC" +ERR=0 +OK=1 +for i in `cat 00MANIFEST | sed 's/\*$//'` +do + if test "X$i" != "X" + then + j=`expr $i : '\(.*\)/$'` + if test "X$j" != "X" -a "X$j" != "X0" + then + + # Check a subdirectory reference. + + if test ! -d ${D}/${S}/$j + then + if test $OK = 1 + then + echo "" + fi + echo " Subdirectory ${S}/$j is missing. ++++" + ERR=1 + OK=0 + fi + else + s=`expr $i : '\(.*\):$'` + if test "X$s" != "X" -a "X$s" != "X0" + then + + # Process a subdirectory change. + + if test $OK -eq 1 + then + echo " OK" + fi + OK=1 + S=$s + echo $EO "Examining $S:$EC" + if test ! -d ${D}/$S + then + echo " ERROR" + echo " Subdirectory $S is missing. ++++" + ERR=1 + OK=0 + fi + else + + # Process a file reference. + + if test ! -r ${D}/${S}/$i + then + if test $OK -eq 1 + then + echo " ERROR" + fi + echo " File ${S}/$i is missing. ++++" + ERR=1 + OK=0 + fi + fi + fi + fi +done +if test $OK -eq 1 +then + echo " OK" +fi +echo "" +if test $ERR -ne 0 +then + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "+ +" + echo "+ SOME FILES OR DIRECTORIES MAY BE MISSING! +" + echo "+ +" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" +else + echo "This lsof distribution seems to be complete." +fi +echo "" +echo "" >> $CK +exit $ERR |