#!/bin/sh
#
# Copyright (c) 1994, 1995, 1996 by Sun Microsystems, Inc.
# All Rights Reserved
#
#	@(#)accept	1.5	97/01/06 SMI
#
PATH=/usr/ucb:/bin:/usr/bin:/usr/sbin export PATH
cmd_name=`basename $0`
args=""
reason=""
destinations=""
exit_code=0
local_exit=0

#
# check for some options
#
if [ $# -lt 1 ] ; then
	gettext "Usage:	"
	echo -n $cmd_name $valid_opts
	gettext " printer ..."
	echo
	exit 1
fi

#		set variables for command
case $cmd_name in
	accept)
		valid_opts=""
		options="\?"
	;;
	enable)
		valid_opts=""
		options="\?"
	;;
	reject)
		valid_opts="[ -r reason ]"
		options="r:"
	;;
	disable)
		valid_opts="[ -c | -W ] [ -r reason ]"
		options="Wcr:"
	;;
	*)
		gettext "Error: "
		echo -n $cmd_name
		gettext " - invalid name"
		echo
		exit 1
	;;
esac

#		Strip off legal options
while getopts $options arg
do
	case $arg in
	c|W)
		args="${args} -$arg"
	;;
	r)
		reason=${OPTARG}
	;;
	\?)
		gettext "Usage:	"
		echo -n $cmd_name $valid_opts
		gettext " printer ..."
		echo
		exit 1
	;;
	esac
done
shift `expr $OPTIND - 1`


#		Each destination
for printer in $*
do
	if [ -f /etc/lp/classes/$printer -o -d /etc/lp/printers/$printer -a \
	     -f /usr/lib/lp/local/$cmd_name ]
	then
		destinations="${destinations} ${printer}"
	else
		check=`lpstat -v $printer -L`
		if [ -n "$check" ]
		then
			gettext "Warning: "
			echo -n $printer
			gettext " is remote, $cmd_name has no meaning."
			echo
		else
			exit_code=1
		fi
	fi
done

if [ -n "$destinations" ]
then
	if [ -n "$reason" ] ; then
		/usr/lib/lp/local/$cmd_name -r "$reason" $args $destinations
	else
		/usr/lib/lp/local/$cmd_name $args $destinations
	fi
	local_exit=$?
fi

if [ ${local_exit} -ne 0 ] ; then
	exit ${local_exit}
else
	exit ${exit_code}
fi
