diff options
Diffstat (limited to 'usr/src/cmd/print/scripts/accept')
-rw-r--r-- | usr/src/cmd/print/scripts/accept | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/usr/src/cmd/print/scripts/accept b/usr/src/cmd/print/scripts/accept new file mode 100644 index 0000000000..8d2fb4a995 --- /dev/null +++ b/usr/src/cmd/print/scripts/accept @@ -0,0 +1,141 @@ +#!/bin/sh +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright (c) 1994, 1995, 1996 by Sun Microsystems, Inc. +# All Rights Reserved +# +# ident "%Z%%M% %I% %E% SMI" +# +PATH=/usr/ucb:/bin:/usr/bin:/usr/sbin export PATH +cmd_name=`basename $0` +args="" +reason="" +destinations="" +exit_code=0 +local_exit=0 + +TEXTDOMAIN="SUNW_OST_OSCMD" +export TEXTDOMAIN + +# +# 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` + + +if [ "$*" = "" ] ; then + gettext "No destination specified" + echo + exit 1 +fi + +# 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 |