:
#
# aoduuset (Online Diagnostics)
#


# define a function to read input and substitute proper values
getentry() \
{ \
	echo "$1 : \c"; \
	read GETENTRY ; 
	if [ "$GETENTRY" ]
	then
		# valid entry; substitute new value
		eval $2='`echo $GETENTRY`'; \
	fi \
}

# check for superuser id

if [ `logname` != "root" ]
then
	echo "Must be super-user to execute the UUCP set-up routine"
	exit 1
fi

# change directory to uucp commands directory
cd /usr/lib/uucp

# check for existence of required files
# change directory to commands default
cd /usr/bin
for file in uucp uulog uuname uupick uustat uuto uux
do
	if [ ! -x $file ]
	then
		echo "File: $file missing from /usr/lib/uucp directory"
		echo "	check to be certain that UUCP has been installed on this system"
	fi
done

# change directory to uucp commands directory

cd /usr/lib/uucp

for file in uucheck uucico uuclean uugetty uusched uuxqt uutry
do
	if [ ! -x $file ]
	then
		echo "File: $file missing from or not executable in /usr/lib/uucp directory;"
		echo "	check to be certain that UUCP has been installed on this system"
	fi
done

for file in Devices Permissions Systems
do
	if [ ! -f $file ]
	then
		echo "File: $file missing from /usr/lib/uucp directory"
		echo "	check to be certain that UUCP has been installed on this system"
	fi
done

# set up temporary file aliases
TEMP="$$.edtmp"

# set clean-up action upon abort or premature exit
trap "rm -f $TEMP" 0 2 3 15

# set up aliases for uu command execution

# Systems file parameters

REMSYSTEM=`awk 'BEGIN{FS="|"}{print $1}' /usr/lib/aod.remsys`
REMNUMBER=`awk 'BEGIN{FS="|"}{print $2}' /usr/lib/aod.remsys`
REMHOURS=`awk 'BEGIN{FS="|"}{print $3}' /usr/lib/aod.remsys`
REMSPEED=`awk 'BEGIN{FS="|"}{print $4}' /usr/lib/aod.remsys`
REMEXSEND=`awk 'BEGIN{FS="|"}{print $5}' /usr/lib/aod.remsys`
OLDSYSTEM="$REMSYSTEM"
OREMSYSTEM="$REMSYSTEM"
OREMNUMBER="$REMNUMBER"
OREMHOURS="$REMHOURS"
OREMSPEED="$REMSPEED"
OREMEXSEND="$REMEXSEND"
THISSYSTEM=`uuname -l`


# Devices file parameters


DEVICETYPE=`awk 'BEGIN{FS="|"}{print $1}' /usr/lib/aod.remdev`
TTYLINE=`awk 'BEGIN{FS="|"}{print $2}' /usr/lib/aod.remdev`
DIALERLINE=`awk 'BEGIN{FS="|"}{print $3}' /usr/lib/aod.remdev`
SPEED=`awk 'BEGIN{FS="|"}{print $4}' /usr/lib/aod.remdev`
DIALER=`awk 'BEGIN{FS="|"}{print $5}' /usr/lib/aod.remdev`
TOKEN=`awk 'BEGIN{FS="|"}{print $6}' /usr/lib/aod.remdev`
DEVSTR="$DEVICETYPE $TTYLINE $DIALERLINE $SPEED $DIALER $TOKEN"
ODEVICETYPE="$DEVICETYPE"
OTTYLINE="$TTYLINE"
ODIALERLINE="$DIALERLINE"
OSPEED="$SPEED"
ODIALER="$DIALER"
OTOKEN="$TOKEN"

# Permissions file parameters

MACHINE=`awk 'BEGIN{FS="|"}{print $1}' /usr/lib/aod.remperm`
LOGNAME=`awk 'BEGIN{FS="|"}{print $2}' /usr/lib/aod.remperm`
COMMANDS=`awk 'BEGIN{FS="|"}{print $3}' /usr/lib/aod.remperm`
READ=`awk 'BEGIN{FS="|"}{print $4}' /usr/lib/aod.remperm`
WRITE=`awk 'BEGIN{FS="|"}{print $5}' /usr/lib/aod.remperm`
SEND=`awk 'BEGIN{FS="|"}{print $6}' /usr/lib/aod.remperm`
REQ=`awk 'BEGIN{FS="|"}{print $7}' /usr/lib/aod.remperm`
OMACHINE="$MACHINE"
OLDMACHINE="$MACHINE"
OLOGNAME="$LOGNAME"
OLDLOGNAME="$LOGNAME"
OCOMMANDS="$COMMANDS"
OLDCOMMANDS="$COMMANDS"
OREAD="$READ"
OLDREAD="$READ"
OWRITE="$WRITE"
OLDWRITE="$WRITE"
OSEND="$SEND"
OLDSEND="$SEND"
OREQ="$REQ"
OLDREQ="$REQ"

# loop through main menu to edit configuration files
until [ ]
do
	clear
	echo; echo "		Online Diagnostics UUCP Configuration Editor"
	echo "		--------------------------------------------"
	echo; echo "			1) Modify Systems file"
	echo; echo "			2) Modify Devices file"
	echo; echo "			3) Modify Permissions file"
	echo; echo "		or enter 'q' to quit"
	echo; echo "			Your choice: \c"
	read ANSWER
	case $ANSWER in
	1) until [ ]
	do
		clear
		echo; echo "		Online Diagnostics UUCP Systems File Editor"
		echo "                -------------------------------------------"
		echo; echo "Your remote on-line diagnostics notification computer is:"
		echo "	Remote System Name:	$REMSYSTEM"
		echo "	Remote Phone Number:	$REMNUMBER"
		echo "	Available Hours:	$REMHOURS"
		echo "	Speed (baud rate):      $REMSPEED"
		echo "	Expect-Send Sequence:   $REMEXSEND" 

		echo; echo "This should not be changed unless directed to do so by Altos Computer Systems."
		echo; echo "Do you wish to modify the Remote System configuration at this time ? \c"
		read ANSWER
		if [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]
		then
			break
		elif [ "$ANSWER" != "Y" -a "$ANSWER" != "y" ]
		then
			continue
		fi

                echo "\nConsult your Altos UNIX System V/386 System Administrator's Reference\nfor information on UUCP."
		echo
		echo "Hit <CR> to leave any fields unchanged..."
		getentry "System name" REMSYSTEM;
		getentry "System phone #" REMNUMBER
		getentry "System hours" REMHOURS
		getentry "Speed (baud rate)" REMSPEED
		getentry "Expect-Send sequence" REMEXSEND
		echo
		until [ ]
		do
			echo "Do you wish to save these changes ? \c"
			read SAVE
			if [ "$SAVE" = "N" -o "$SAVE" = "n" ]
			then
				REMSYSTEM="$OREMSYSTEM"
				REMNUMBER="$OREMNUMBER"
				REMHOURS="$OREMHOURS"
				REMSPEED="$OREMSPEED"
				REMEXSEND="$OREMEXSEND"
				break
			elif [ "$SAVE" = "Y" -o "$SAVE" = "y" ]
			then
				OREMSYSTEM="$REMSYSTEM"
				OREMNUMBER="$REMNUMBER"
				OREMHOURS="$REMHOURS"
				OREMSPEED="$REMSPEED"
				OREMEXSEND="$REMEXSEND"
				echo "$REMSYSTEM|$REMNUMBER|$REMHOURS|$REMSPEED|$REMEXSEND" > /usr/lib/aod.remsys
				break
			fi
		done
		SYSEXISTS=`grep -c $REMSYSTEM /usr/lib/uucp/Systems`
		if [ $SYSEXISTS -eq 0 ]
		then
			echo "The Remote System '$REMSYSTEM' is NOT currently included in\n	the UUCP Systems file!"
		fi
		until [ ]
		do
		   echo "Update System file with Remote System '$REMSYSTEM' Entry? (y/n) \c"
		   read ANSWER
		   if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" ]
		   then
			awk "{if(\$1!=\""$OLDSYSTEM"\")print \$0}" /usr/lib/uucp/Systems | awk "{if(\$1!=\""$REMSYSTEM"\")print \$0}" > $TEMP

			echo "$REMSYSTEM $REMHOURS ACU $REMSPEED $REMNUMBER $REMEXSEND" | cat $TEMP - > /usr/lib/uucp/Systems
			rm $TEMP
			break
		   elif [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]
                   then
                        break
                   fi 
		done
	done
	;;
	2) until [ ]
	do
		clear
		echo; echo "		Online Diagnostics UUCP Devices File Editor"
		echo "		-------------------------------------------"
                echo
		echo "	        Device Type:   	     $DEVICETYPE"
		echo "	        TTY Line:            $TTYLINE"
		echo "	        Dialer Line:	     $DIALERLINE"
		echo "	        Speed (baud rate):   $SPEED"
		echo "	        Dialer:              $DIALER"
		echo "	        Token:               $TOKEN"
		echo; echo "This should not be changed unless directed to do so by Altos Computer Systems."
		echo; echo "Do you wish to modify the Devices file entry at this time ? \c"
		read ANSWER
		if [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]
		then
			break
		elif [ "$ANSWER" != "Y" -a "$ANSWER" != "y" ]
		then
			continue
		fi

                echo "\nConsult your Altos UNIX System V/386 System Administrator's Reference\nfor information on UUCP."
                echo 
		echo "Hit <CR> to leave any fields unchanged..."
		getentry "Device Type" DEVICETYPE;
		getentry "TTY Line" TTYLINE
		getentry "Dialer Line" DIALERLINE
		getentry "Speed (baud rate)" SPEED
		getentry "Dailer" DIALER
		getentry "Token" TOKEN
		echo
		until [ ]
		do
			echo "Do you wish to save these changes ? \c"
			read SAVE
			if [ "$SAVE" = "N" -o "$SAVE" = "n" ]
			then
				DEVICETYPE="$ODEVICETYPE"
				TTYLINE="$OTTYLINE"
				DIALERLINE="$ODIALERLINE"
				SPEED="$OSPEED"
				DIALER="$ODIALER"
				TOKEN="$OTOKEN"
				break
			elif [ "$SAVE" = "Y" -o "$SAVE" = "y" ]
			then
				ODEVICETYPE="$DEVICETYPE"
				OTTYLINE="$TTYLINE"
				ODIALERLINE="$DIALERLINE"
				OSPEED="$SPEED"
				ODIALER="$DIALER"
				OTOKEN="$TOKEN"
				echo "$DEVICETYPE|$TTYLINE|$DIALERLINE|$SPEED|$DIALER|$TOKEN" > /usr/lib/aod.remdev
				break
			fi
		done
		SYSEXISTS=`grep -c "$DEVICETYPE $TTYLINE $DIALERLINE $SPEED $DIALER" /usr/lib/uucp/Devices`
		if [ $SYSEXISTS -eq 0 ]
		then
			echo "The $DEVICETYPE $TTYLINE $DIALERLINE $SPEED $DIALER entry is NOT currently included in\nthe UUCP Devices file!"
                elif [ $SYSEXISTS -ge 0 ]
		then
			echo "The $DEVICETYPE $TTYLINE $DIALERLINE $SPEED $DIALER entry is currently included in\nthe UUCP Devices file!"
		fi
		until [ ]
		do
		   echo "Update Devices file? (y/n) \c"
		   read ANSWER
		   if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" ]
		   then
                        grep -v "$DEVSTR" /usr/lib/uucp/Devices > $TEMP
			echo "$DEVICETYPE $TTYLINE $DIALERLINE $SPEED $DIALER $TOKEN" | cat $TEMP - > /usr/lib/uucp/Devices
                        rm $TEMP
			break
		   elif [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]
	           then	
     			break
		   fi
               done	
	done
	;;
	3) until [ ]
	do
		clear
		echo; echo "		Online Diagnostics UUCP Permissions File Editor"
		echo "		-----------------------------------------------"
                echo
		echo "	        Machine:   	 $MACHINE"
		echo "	        Log name:	 $LOGNAME"
		echo "	        Commands:	 $COMMANDS"
		echo "	        Read:            $READ"
		echo "	        Write:           $WRITE"
		echo "	        Send Files: $SEND  Request: $REQ"
		echo; echo "This should not be changed unless directed to do so by Altos Computer Systems."
		echo; echo "Do you wish to modify the Permissions file entry at this time ? \c"
		read ANSWER
		if [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]
		then
			break
		elif [ "$ANSWER" != "Y" -a "$ANSWER" != "y" ]
		then
			continue
		fi

                echo "\nConsult your Altos UNIX System V/386 System Administrator's Reference\nfor information on UUCP."
  		echo
		echo "Hit <CR> to leave any fields unchanged..."
		getentry "Machine" MACHINE;
		getentry "Log Name" LOGNAME
		getentry "Commands" COMMANDS
		getentry "Read" READ
		getentry "Write" WRITE
		getentry "Send Files" SEND
		getentry "Request" REQ

		echo
		until [ ]
		do
			echo "Do you wish to save these changes ? \c"
			read SAVE
			if [ "$SAVE" = "N" -o "$SAVE" = "n" ]
			then
				MACHINE="$OMACHINE"
				LOGNAME="$OLOGNAME"
				COMMANDS="$OCOMMANDS"
				READ="$OREAD"
				WRITE="$OWRITE"
				SEND="$OSEND"
				REQ="$OREQ"
				break
			elif [ "$SAVE" = "Y" -o "$SAVE" = "y" ]
			then
				OMACHINE="$MACHINE"
				OLOGNAME="$LOGNAME"
				OCOMMANDS="OCOMMANDS"
				OREAD="$READ"
				OWRITE="$WRITE"
				OSEND="$SEND"
				OREQ="$REQ"
				echo "$MACHINE|$LOGNAME|$COMMANDS|$READ|$WRITE|$SEND|$REQ" > /usr/lib/aod.remperm
				break
			fi
		done
		SYSEXISTS=`grep -c $MACHINE /usr/lib/uucp/Permissions`
		if [ $SYSEXISTS -eq 0 ]
		then
			echo "The Machine '$MACHINE' is NOT currently included in\nthe UUCP Permissions file!"
		elif [ $SYSEXISTS -ge 0 ]
		then
			echo "The Machine '$MACHINE' is currently included in\nthe UUCP Permissions file!"
		fi
		until [ ]
		do
		   echo "Update Permissions file? (y/n) \c"
		   read ANSWER
		   if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" ]
		   then
			grep -v "MACHINE=$OLDMACHINE LOGNAME=$OLDLOGNAME COMMANDS=$OLDCOMMANDS READ=$OLDREAD WRITE=$OLDWRITE SENDFILES=$OLDSEND REQUEST=$OLDREQ" /usr/lib/uucp/Permissions > $TEMP
			echo "MACHINE=$MACHINE LOGNAME=$LOGNAME COMMANDS=$COMMANDS READ=$READ WRITE=$WRITE SENDFILES=$SEND REQUEST=$REQ" | cat $TEMP - > /usr/lib/uucp/Permissions
 		        rm $TEMP
			break
		   elif [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]
		   then
			break
		   fi
	       done	
	done
	;;
	q|Q) break
		;;
	esac
done

trap 0 2 3 15
clear
exit 0
