|
Packit |
6f02de |
#!/bin/sh
|
|
Packit |
6f02de |
#
|
|
Packit |
6f02de |
# $Id: AFSConfig,v 1.2 99/05/09 14:49:54 abe Exp $
|
|
Packit |
6f02de |
#
|
|
Packit |
6f02de |
# AFSConfig: configure for AFS
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
AFSD=/usr/vice/etc/afsd
|
|
Packit |
6f02de |
AH=AFSHeaders
|
|
Packit |
6f02de |
AV=AFSVersion
|
|
Packit |
6f02de |
STD=/usr/afsws/include
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# Establish trap and stty handling.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
ISIG=":"
|
|
Packit |
6f02de |
trap 'rm -f $AH $AV; $ISIG; exit 1' 1 2 3 15
|
|
Packit |
6f02de |
stty -a 2>&1 | grep isig > /dev/null
|
|
Packit |
6f02de |
if test $? -eq 0
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
stty -a 2>&1 | egrep -e -isig > /dev/null
|
|
Packit |
6f02de |
if test $? -eq 0
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
ISIG="stty -isig"
|
|
Packit |
6f02de |
stty isig
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# Decide how to use echo.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
ECHO=`echo -n ""`
|
|
Packit |
6f02de |
if test "X$ECHO" = "X-n "
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
EC="\c"
|
|
Packit |
6f02de |
EO=""
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
EC=""
|
|
Packit |
6f02de |
EO="-n"
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# Decide (perhaps for a second time) that AFS is installed.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
CELL=""
|
|
Packit |
6f02de |
if test -r /usr/vice/etc/ThisCell
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
cell=`awk '{print $1}' /usr/vice/etc/ThisCell`
|
|
Packit |
6f02de |
if test -d /afs/$cell
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
CELL=$cell
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
CELL=`echo $cell | sed 's/\([^.]*\)\..*/\1/'`
|
|
Packit |
6f02de |
if test "X$CELL" != "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
if test ! -d /afs/$CELL
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
CELL=""
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
if test "X$CELL" = "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "This system does not appear to have AFS installed."
|
|
Packit |
6f02de |
exit 1
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# See if AFS configuration is wanted.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
cat << .CAT_MARK
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
AFS appears to be installed on this system; cell name "$CELL".
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
Lsof needs to be configured for AFS by identifying: 1) the directory
|
|
Packit |
6f02de |
that includes the AFS header files needed to compile AFS support into
|
|
Packit |
6f02de |
lsof; and 2) the version of AFS that is installed.
|
|
Packit |
6f02de |
.CAT_MARK
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "Do you want to configure lsof for AFS (y|n) [y]? $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
exit 1
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "Please answer y or n."
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# See if $AH exists and points to a likely place.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
AHOK=""
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "====================================================================="
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
if test -r $AH
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
AHP=`cat $AH`
|
|
Packit |
6f02de |
if test -r $AHP
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
if test -r $AHP/afs/afs.h
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
cat << .CAT_MARK
|
|
Packit |
6f02de |
The location of the AFS header files required by lsof has been
|
|
Packit |
6f02de |
previously identified as "$AHP".
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
Since <afs/afs.h> can be found there, that's probably correct.
|
|
Packit |
6f02de |
.CAT_MARK
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "Do you want to use $AHP again (y|n) [y]? $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
AHOK="ok"
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
rm -f $AH
|
|
Packit |
6f02de |
AHP=""
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "Please answer y or n."
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo "\"$AHP\" has been previously specified as the location of the"
|
|
Packit |
6f02de |
echo "AFS header files, but it lacks an afs/afs.h header file."
|
|
Packit |
6f02de |
rm -f $AH
|
|
Packit |
6f02de |
AHP=""
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo "The file ./$AH exists, but has no AFS header file path in it."
|
|
Packit |
6f02de |
rm -f $AH
|
|
Packit |
6f02de |
AHP=""
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo "No previous header location has been specified."
|
|
Packit |
6f02de |
rm -f $AH
|
|
Packit |
6f02de |
AHP=""
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# See if the header files are in the "standard" place.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
if test "X$AHOK" != "Xok"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
if test -r $STD
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "====================================================================="
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "The AFS header files appear to be in the \"standard\" location --"
|
|
Packit |
6f02de |
echo "i.e.: \"$STD\"."
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "Do you want to let lsof use them (y|n) [y]? $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo $STD > $AH
|
|
Packit |
6f02de |
AHOK="ok"
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "Please answer y or n."
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# Ask for the AFS header file location.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
if test "X$AHOK" != "Xok"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "====================================================================="
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "Please specify the full path where lsof can find the AFS header"
|
|
Packit |
6f02de |
echo "files. A possible location is: \"/afs/$CELL/<sysname>/include\"."
|
|
Packit |
6f02de |
cat << .CAT_MARK
|
|
Packit |
6f02de |
The <sysname> component of the path is the AFS system name that
|
|
Packit |
6f02de |
was used to configure and build AFS on this system. It is usually
|
|
Packit |
6f02de |
constructed from a manufacturer or Unix operating system designation,
|
|
Packit |
6f02de |
followed by a version number -- e.g., hp800_ux90, sun4m_54, vax_ul43,
|
|
Packit |
6f02de |
etc. You may have to consult your AFS documentation to determine
|
|
Packit |
6f02de |
what <sysname> applies to your configuration.
|
|
Packit |
6f02de |
.CAT_MARK
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "Do you want to see the contents of /afs/$CELL (y|n) [y]? $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
ls -C /afs/$CELL
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "Please answer y or n."
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "AFS header file path: $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
fc=`expr "${ANS}X" : '\(.\).*'`
|
|
Packit |
6f02de |
if test "X$fc" = "X/"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
if test -r $ANS/afs/afs.h
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo $ANS > $AH
|
|
Packit |
6f02de |
AHOK="ok"
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "$ANS/afs/afs.h doesn't exist."
|
|
Packit |
6f02de |
echo "Please enter a path whose afs subdirectory contains afs.h"
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "Please enter an absolute path name."
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
if test "X$AHOK" != "Xok"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo "AFSConfig: unknown error"
|
|
Packit |
6f02de |
exit 1
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# Determine AFS version.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
if test -r $AV
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "====================================================================="
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
AVN=`cat $AV`
|
|
Packit |
6f02de |
cat << .CAT_MARK
|
|
Packit |
6f02de |
The AFS version was previously specified as: $AVN
|
|
Packit |
6f02de |
.CAT_MARK
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "Is this the correct version number (y|n) [y]? $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
exit 0
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
rm -f $AV
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo "Please answer y or n."
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# See if the version number can be determined.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
if test -r $AFSD
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
ANS=`strings $AFSD | grep "Base configuration afs" | sed 's/^.*ion afs\([^ ]*\) .*/\1/'`
|
|
Packit |
6f02de |
TV=`echo $ANS | sed 's/^\([0-9]*\)\.\([0-9]*\)\(.*\)/\1 \2 \3/' | awk '{printf "%d.%d%s\n",$1,$2,$3}'`
|
|
Packit |
6f02de |
if test "X$ANS" = "X$TV"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "====================================================================="
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
cat << .CAT_MARK
|
|
Packit |
6f02de |
Examining $AFSD the AFS version number appears to be: $TV
|
|
Packit |
6f02de |
.CAT_MARK
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "Do you want to use this version number (y/n) [y]? $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
END=1
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo $TV > $AV
|
|
Packit |
6f02de |
exit 0
|
|
Packit |
6f02de |
else
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "Please answer y or n."
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# Ask for the version number.
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo "====================================================================="
|
|
Packit |
6f02de |
END=0
|
|
Packit |
6f02de |
while test $END = 0
|
|
Packit |
6f02de |
do
|
|
Packit |
6f02de |
echo ""
|
|
Packit |
6f02de |
echo $EO "Please enter the AFS version number: $EC"
|
|
Packit |
6f02de |
read ANS EXCESS
|
|
Packit |
6f02de |
TV=`echo $ANS | sed 's/^\([0-9]*\)\.\([0-9]*\)\(.*\)/\1 \2 \3/' | awk '{printf "%d.%d%s\n",$1,$2,$3}'`
|
|
Packit |
6f02de |
if test "X$ANS" = "X$TV"
|
|
Packit |
6f02de |
then
|
|
Packit |
6f02de |
echo $TV > $AV
|
|
Packit |
6f02de |
exit 0
|
|
Packit |
6f02de |
fi
|
|
Packit |
6f02de |
done
|