:
# SCCSID(@(#)lpinstall.sh	1.12 LCC) Modified 17:33:51 7/20/92
#############################################################################
###
### Copyright (c) 1989-92 Locus Computing Corporation
### All rights reserved.
### This is an unpublished work containing CONFIDENTIAL INFORMATION
### that is the property of Locus Computing Corporation.
### Any unauthorized use, duplication or disclosure is prohibited.
###
#############################################################################
#
#     Merge Printer Installation Script
#
#############################################################################


###################################################################
##  Add blank lines for a more aesthetic look.
##
CLEARUP()
{

	for i in 1 2 3 4 5 6 7 8 9 10 11 12
	do
		echo
	done

}

LP_ADMIN_OK()
{
	if [ ! -x $LPADMIN ]
	then
		usrMsg ERROR MISSING_PROG "Missing $LPADMIN program.\n" $LPADMIN
		usrMsg ECHO NO_LP "LP print service might not be installed.\n"
		usrMsg ECHO CANNOT_CONTINUE "Cannot continue.\n"
		exit 1
	fi
	ACCEPT=`/usr/lib/merge/findonpath accept`
	if [ $? -ne 0 ]
	then
		usrMsg ERROR MISSING_PROG "Missing accept program.\n" accept
		usrMsg ECHO NO_LP "LP print service might not be installed.\n"
		usrMsg ECHO CANNOT_CONTINUE "Cannot continue.\n"
		exit 1
	fi
	REJECT=`/usr/lib/merge/findonpath reject`
	if [ $? -ne 0 ]
	then
		usrMsg ERROR MISSING_PROG "Missing reject program.\n" reject
		usrMsg ECHO NO_LP "LP print service might not be installed.\n"
		usrMsg ECHO CANNOT_CONTINUE "Cannot continue.\n"
		exit 1
	fi
	ENABLE=`/usr/lib/merge/findonpath enable`
	if [ $? -ne 0 ]
	then
		usrMsg ERROR MISSING_PROG "Missing enable program.\n" enable
		usrMsg ECHO NO_LP "LP print service might not be installed.\n"
		usrMsg ECHO CANNOT_CONTINUE "Cannot continue.\n"
		exit 1
	fi
	DISABLE=`/usr/lib/merge/findonpath disable`
	if [ $? -ne 0 ]
	then
		usrMsg ERROR MISSING_PROG "Missing disable program.\n" disable
		usrMsg ECHO NO_LP "LP print service might not be installed.\n"
		usrMsg ECHO CANNOT_CONTINUE "Cannot continue.\n"
		exit 1
	fi
}


###################################################################
##  Get printer "name", "model" and device and use "lpadmin"
##  to add a new printer. Use "doslp" as the default name, "dosmodel"
##  as the default model and "/dev/lp" as the default device.
##
##  Note: No error checking is done. We let "lpadmin" take care
##  of that.

ADD_LP()
{
	lmfmsg $MFILE $DM.INSTALL >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.INSTALL
	else
		echo
		echo "        INSTALL"
		echo "        ---------------------"
	fi
	DEFAULT=doslp
	lmfmsg $MFILE $DM.PRINTER xxx >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.PRINTER "$DEFAULT"
	else
		echo "        Printer Name [$DEFAULT]: \c"
	fi
	read RESPONSE
	NAME=${RESPONSE:-"$DEFAULT"}

	DEFAULT=dosmodel
	lmfmsg $MFILE $DM.MODEL $DEFAULT >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.MODEL $DEFAULT
	else
		echo "        Printer Model [$DEFAULT]: \c"
	fi
	read RESPONSE
	MODEL=${RESPONSE:-"$DEFAULT"}

	DEFAULT=/dev/lp
	lmfmsg $MFILE $DM.DEVICE $DEFAULT >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.DEVICE $DEFAULT
	else
		echo "        Device [$DEFAULT]: \c"
	fi
	read RESPONSE
	DEV=${RESPONSE:-"$DEFAULT"}

	echo

	lmfmsg $MFILE $DM.OK_INST $YES_CHAR >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.OK_INST $YES_CHAR
	else
		echo "        OK to install? [$YES_CHAR]: \c"
	fi
	read RESPONSE
	ISOK=${RESPONSE:-"$YES_CHAR"}
	if [ $ISOK = "$YES_CHAR" ]
	then
		echo

		$LPADMIN -p$NAME -m$MODEL -v$DEV -o nobanner

		if [ $? = "0" ]
		then
			echo
			enable $NAME
			accept $NAME
		fi
	fi
	if [ -x /usr/lib/lpsched ]
	then
		# Add startup command to /etc/rc2.d/S30lp file
		# for start on boot.
		grep lpsched /etc/rc2.d/*	>> $NULL 2>&1
		if [ $? -ne 0 ]
		then
			echo "/usr/lib/lpsched" >> /etc/rc2.d/S30lp
		fi
	fi
	echo
	lmfmsg $MFILE $DM.CONTINUE >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.CONTINUE
	else
		echo "        Press [ENTER] to continue\c"
	fi
	read junk
	echo
}



###################################################################
##  Get printer "name" and use "lpadmin" to remove it.
##
##  Note: No error checking is done. We let "lpadmin" take care
##  of that.

RM_LP()
{
	lmfmsg $MFILE $DM.REMOVE >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.REMOVE
	else
		echo
		echo "        REMOVE"
		echo "        ---------------------"
		echo "        Printer Name: \c"
	fi
	read NAME

	echo

	lmfmsg $MFILE $DM.OK_REMOVE xxx xxx >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.OK_REMOVE "$NAME" "$YES_CHAR"
	else
		echo "        OK to remove $NAME? [$YES_CHAR]: \c"
	fi
	read RESPONSE
	ISOK=${RESPONSE:-"$YES_CHAR"}
	if [ $ISOK = "$YES_CHAR" ]
	then
		echo

		reject $NAME		>> $NULL 2>&1
		# On some systems, the disable "-c" option is not supported,
		# so try it first with the option, and then without it.
		disable -c $NAME	>> $NULL 2>&1
		disable $NAME	>> $NULL 2>&1
		$LPADMIN -x$NAME

	fi
	echo
	lmfmsg $MFILE $DM.CONTINUE >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.CONTINUE
	else
		echo "        Press [ENTER] to continue\c"
	fi
	read junk
	echo
}


###################################################################
##  List printers.
##
##  Note: SVR3.2 specific.

LS_LP()
{
	lmfmsg $MFILE $DM.LIST xx >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.LIST "`ls  $LP_PRNTR | /bin/wc -l`"
	else
		echo
		echo "Number of Printers Installed: `ls $LP_PRNTR | /bin/wc -l`"
		echo "--------------------------------------"
	fi
	ls $LP_PRNTR
	echo
	lmfmsg $MFILE $DM.CONTINUE >>$NULL 2>&1
	if [ $? -eq 0 ]
	then
		lmfmsg $MFILE $DM.CONTINUE
	else
		echo "        Press [ENTER] to continue\c"
	fi
	read junk
	echo
}


###########################################################################
## Script starts here
##


. /usr/merge/Version
LIBM=${LIBM:-$ROOT/usr/lib/merge}
# The script "set_nls.sh" uses LIBM to set MFILE.
. $LIBM/set_nls.sh

# DM is the domain for messages for this script.
DM="LCC.MERGE.UNIX.LPINSTALL"
NULL=/dev/null

YES_CHAR="`lmfmsg $MFILE $DM.YES_CHAR 2>>$NULL`"
[ -z "$YES_CHAR" ] && YES_CHAR=y

QUIT_CHAR="`lmfmsg $MFILE $DM.QUIT_CHAR 2>>$NULL`"
[ -z "$QUIT_CHAR" ] && QUIT_CHAR=q

if [ "$UNIX_REL" = "4.0" -o "$UNIX_REL" = "4.2" ]
then
	LP_SPOOL=/var/spool/lp		# Spooling directory.
else
	LP_SPOOL=/usr/spool/lp		# Spooling directory.
fi
LP_IFACE=$LP_SPOOL/admins/lp/interfaces	# Interface directory.
LP_PRNTR=$LP_SPOOL/admins/lp/printers	# Printers directory.
LPADMIN="/usr/lib/lpadmin"

LP_ADMIN_OK

while :
do
CLEARUP
lmfmsg $MFILE $DM.MAIN_MENU $QUIT_CHAR >>$NULL 2>&1
if [ $? -eq 0 ]
then
	lmfmsg $MFILE $DM.MAIN_MENU $QUIT_CHAR
else
echo "


        Merge Printer Installation Program
        ----------------------------------

        1)  Install a Printer
        2)  Remove a Printer
        3)  List Printers

        $QUIT_CHAR)  Quit

        ----------------------------------
        Enter Option: \c"
fi

read RESP

case $RESP in

	$QUIT_CHAR) echo;
	     echo;
	     exit
	     ;;

	1) echo;
	   ADD_LP;
	   ;;

	2) echo;
	   RM_LP;
	   ;;

	3) echo;
	   LS_LP;
	   ;;

	*) ;;
esac


done
