summaryrefslogtreecommitdiff
path: root/Inventory
diff options
context:
space:
mode:
Diffstat (limited to 'Inventory')
-rwxr-xr-xInventory204
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