#! /bin/sh
#
# sccsid @(#)backup	7.1	ULTRIX	7/22/92
#
#	Generic Backup for ULTRIX-32
#
echo ""
echo "ULTRIX-32 File System Backup Procedure"
echo ""
if [ -f /etc/sdnologin ]; then
	if [ -f /etc/elcsd ]; then
		/etc/elcsd -s &	echo 'start errlog daemon - elcsd' 
	fi
	#wait for elcsd to print startup mesgs;can't call /usr/bin/sleep 
	wait=20
	while [ $wait != '0' ]
	do
		wait=`expr $wait - 1`
	done
fi
while true
do
	while true
	do
		echo ""
		echo -n "Please specify the tape drive type. (eg. te16): "
		read TTYPE
		case $TTYPE in
		te16|TE16|tu77|TU77)			MAJOR=5; break;;
		tz50|TZ50)				MAJOR=9; break;;
		tz05|TZ05|tsv05|TSV05|ts11|TS11|tu80|TU80) MAJOR=16; break;;
		tu78|TU78|tu79|TU79)			MAJOR=19; break;;
		tu81|TU81|tu81e|TU81E)			MAJOR=36; break;;
		ta81|TA81|ta78|TA78|ta79|TA79)          MAJOR=36; break;;
		rv20|RV20|ta90|TA90)    		MAJOR=36; break;;
		tf70|TF70|tk50|TK50|tk70|TK70)	if /opr/is_vaxstar
					    then MAJOR=46
					    else MAJOR=36
					fi
					break;;
		tz30|TZ30|tlz04|TLZ04|tzk50|TZK50)  if /opr/is_vaxstar
					    then MAJOR=46
					    else MAJOR=55
					fi
					break;;
		*)	echo ""
			echo "Invalid tape drive type."
			echo ""
			;;
		esac
	done
	while true
	do
		echo ""
		echo -n "Please specify the logical unit number for the tape drive. (eg. 0): "
		read SLAVE
		case $SLAVE in
		0|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)	break;;
		*)		echo ""
				echo "Invalid slave number"
				echo ""
				;;
		esac
	done
    case $TTYPE in
	tz50|TZ50) BIT=h; DENS=6666;;
	tk50|TK50|tz30|TZ30|tzk50|TZK50) BIT=h; DENS=6666;;
	tf70|TF70|tk70|TK70) BIT=h; DENS=10240;;
	tlz04|TLZ04|ta90|TA90) BIT=h; DENS=38000;;
	*)
	while true
	do
		echo ""
		echo -n "Please specify tape density. (eg. 1600): "
		read DENS
		case $DENS in
			800)	case $MAJOR in
				5)	BIT=l; break;;
				*)	echo ""
					echo "Invalid density for tape drive."
					echo ""
					;;
				esac;;
			1600)	case $MAJOR in
				5)	BIT=h; break;;
				16)	BIT=h; break;;
				19|36)	BIT=l; break;;
				46)	BIT=h; break;;
				esac;;
			6250)	case $MAJOR in
				19|36)	BIT=h; break;;
				46)	BIT=h; break;;
				*)	echo ""
					echo "Invalid density for tape drive."
					echo ""
					;;
				esac;;
			*)	echo""
				echo "Invalid density for tape drive."
				echo ""
				;;
		esac
	done
	;;
    esac
	DRIVE='rmt'$SLAVE$BIT
	if test -f /dev/$DRIVE
	then
		ls -l /dev/$DRIVE > back$$
		TMP=$MAJOR,
		if grep $TMP back$$ > /dev/null
		then
			rm back$$
			break;
		else
			rm back$$
			echo ""
			echo "Error in specifying tape drive - repeating questions."
		fi
	else
		echo ""
		echo "Error in specifying tape drive - repeating questions."
	fi
done
while true
do
	echo ""
	echo -n "Backup to be full or incremental? < f or i >: "
	read TMP
	case $TMP in
		f)	LEV=0; break;;
		i)	LEV=9; break;;
		*)	echo ""
			echo "Invalid backup level."
			echo ""
	esac
done
grep ":ufs:" /etc/fstab > flist$$
awk -F: '!($2 == ""){print $1}' flist$$ | sed "s/\/dev\///"  > fstab$$
rm flist$$
NUM=0
exec < fstab$$
while read FSYS
do
	NUM=`expr $NUM + 1`
	LABEL='LABEL'$NUM
	/opr/dobackup $DRIVE $DENS $LEV $FSYS $LABEL
done
exec < /dev/tty
rm fstab$$
echo ""
echo "ULTRIX-32 File System Backup Procedure completed."
echo ""
