| #!/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 |