#!/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