#!/bin/sh
#
# Copyright (c) 1994, 1995, 1996 by Sun Microsystems, Inc.
# All Rights Reserved
#
#	@(#)lpadmin	1.20	96/04/22 SMI
#
PATH=/bin:/usr/bin:/usr/sbin export PATH
 
LPSET=/usr/bin/lpset
LPGET=/usr/bin/lpget


cmd_name=`basename $0`
exit_code=0

usage() {
	echo "Usage:"
	echo "	lpadmin -p (printer) (options)"
	echo "	lpadmin -x (dest)"
	echo "	lpadmin -d (dest)"
	exit 1
}

#		Strip off legal options
while getopts "A:ac:d:D:e:f:F:H:hi:I:lm:Mo:p:Q:r:S:s:T:u:U:v:W:x:t:P:" arg
do
	case $arg in
	D)
		description="${OPTARG}"
	;;
	d)
		if [ -n "${printer}" -o -n "${delete}" -o -n "${server}" -o \
		     -n "${device}" -o -n "${description}" ] ; then
			usage
		fi
		default=${OPTARG}
		printer=${OPTARG}
	;;
	p)
		if [ -n "${default}" -o -n "${delete}" ] ; then
			usage
		fi
		printer=${OPTARG}
	;;
	s)
		server=${OPTARG}
	;;
	v)
		device=${OPTARG}
		server=`uname -n`
	;;
	x)
		if [ -n "${printer}" -o -n "${default}" -o -n "${server}" -o \
		     -n "${device}" -o -n "${description}" ] ; then
			usage
		fi
		delete=${OPTARG}
		printer=${OPTARG}
	;;
	esac
done

#
#	Do the LP configuration for a local printer served by lpsched
#
if [ -f /usr/lib/lp/local/$cmd_name ] ; then
	if [ -d /etc/lp/printers/${printer} -o -n "${device}" ] ; then
		# to deal with multi-word arguments
		CMD="/usr/lib/lp/local/$cmd_name"
		while [ -n "$*" ] ; do
			CMD="$CMD \"$1\""
			shift
		done
		case "$CMD" in
			*\"-D\")
				CMD="$CMD \"\""
			;;
		esac
		eval $CMD
		exit_code=$?
	fi
fi

if [ $exit_code != 0 ] ; then
	exit $exit_code
fi


#	split the "server" into printer and server
if [ -n "${server}" ] ; then
	if [ `echo ${server} | grep -c !` = 1 ] ; then
		rem_printer=`echo ${server} | cut -d! -f2`
	fi
	server=`echo ${server} | cut -d! -f1`
fi

if [ -z "${rem_printer}" ] ; then
	rem_printer=${printer}
fi



#
#	Do the Solstice Print Configuration in /etc
#
if [ ! -f ${LPSET} ] ; then
	exit_code=2
else
	if [ -n "${default}" ] ; then
		${LPGET} -k bsdaddr ${default} >/dev/null 2>&1
		exit_code=$?
		if [ $exit_code -eq 0 ] ; then
			${LPSET} -n system -a use=${default} _default
			exit_code=$?
		else
			echo "${default}: undefined printer" 1>&2
		fi
	fi
	if [ -n "${delete}" ] ; then
		${LPSET} -n system -x ${delete}
		exit_code=$?
	fi
	if [ -n "${printer}" -a -n "${server}" ] ; then
		${LPSET} -n system \
			-a "bsdaddr=${server},${rem_printer},Solaris" \
			${printer}
		exit_code=$?
	fi
	if [ -n "${printer}" -a -n "${description}" ] ; then
		${LPSET} -n system -a "description=${description}" ${printer}
		exit_code=$?
	fi
fi

exit $exit_code
