1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#!/bin/sh
#
# tiger - A UN*X security checking system
# Copyright (C) 1993 Douglas Lee Schales, David K. Hess, David R. Safford
#
# Please see the file `COPYING' for the complete copyright notice.
#
# genmsgidx - 06/14/93
#
#-----------------------------------------------------------------------------
basedir=${TIGERHOMEDIR:=.}
for parm
do
case $parm in
-B) basedir=$2; break;;
esac
done
BASEDIR=${BASEDIR:=$basedir}
export BASEDIR
findcmd()
{
CMD=$1
SRCH=/usr/ucb:/usr/bin:/bin:/etc:/usr/etc
SAVEIFS=$IFS
IFS=:
set $SRCH
IFS=$SAVEIFS
for dir
do
[ $TESTEXEC $dir/$CMD ] && {
echo $dir/$CMD
return
}
done
}
haveallof()
{
retval=0
what=$1
shift
for file
do
eval cmd=\$$file
[ ! -n "$cmd" ] && {
echo "--CONFIG-- Don't have all required $what (missing $file)"
retval=1
}
done
return $retval
}
TESTEXEC=-x
( [ $TESTEXEC /bin/sh ] ) 2> /tmp/te.$$
[ -s /tmp/te.$$ ] && TESTEXEC=-f
export TESTEXEC
RM=`findcmd rm`
[ -n "$RM" ] && $RM /tmp/te.$$
AWK=`findcmd awk`
BASENAME=`findcmd basename`
CHMOD=`findcmd chmod`
haveallof commands AWK BASENAME || exit 1
haveallof variables BASEDIR || exit 1
for infile
do
file=`$BASENAME $infile`
$AWK '
BEGIN {start=0}
/^%.*/ {
if(start)
printf("%s %s %d %d\n", key, "'$file'", start+1, NR-1);
start=NR;
key=substr($0, 2, length($0)-1);
}
END { printf("%s %s %d $\n", key, "'$file'", start+1); }
' $infile
done > $BASEDIR/doc/explain.idx
status=$?
$CHMOD 644 $BASEDIR/doc/explain.idx
exit $status
|