f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# CDDL HEADER START
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# The contents of this file are subject to the terms of the
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Common Development and Distribution License (the "License").
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# You may not use this file except in compliance with the License.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# or http://www.opensolaris.org/os/licensing.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# See the License for the specific language governing permissions
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# and limitations under the License.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# When distributing Covered Code, include this CDDL HEADER in each
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# If applicable, add the following below this CDDL HEADER, with the
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# fields enclosed by brackets "[]" replaced with your own identifying
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# information: Portions Copyright [yyyy] [name of copyright owner]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# CDDL HEADER END
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Use is subject to license terms.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#pragma ident "%Z%%M% %I% %E% SMI"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica###########
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica##
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica## Network Standard printer interface program.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica##
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica###########
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# We can't do much except exit if spooler/scheduler
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# cancels us.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricatrap 'eval exit_clean 15' 15
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Send standard error messages to /dev/null rather than to
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# the spooler. Avoids "Terminated" messages that shell puts out
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# when gets SIGTERM. Save standard error so it can be used
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# when we need it
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaexec 5>&2 2>/dev/null 3>&1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# set some global variables
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica: ${LPTMPDIR:=/tmp}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica: ${SPOOLDIR:=/usr/spool/lp}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica: ${LOCALPATH:=${SPOOLDIR}/bin}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaPATH="/bin:/usr/bin:${LOCALPATH}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaexit_code=0
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# ${LPTELL} is the name of a program that will send its
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# standard input to the Spooler. It is used to forward
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# the description of a printer fault to the Spooler,
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# which uses it in an alert to the administrator.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ ! -x "${LPTELL:=${LOCALPATH}/lp.tell}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fake_lptell () {
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica header="no"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica while read line
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica do
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "no" = "${header}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica errmsg ERROR ${E_IP_UNKNOWN} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "unknown printer/interface failure" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "consult your system administrator;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica reasons for failure (if any) follow:"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica header=yes
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "${line}" >&2
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica done
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica return 1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica }
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica LPTELL=fake_lptell
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# ${LPTSOLSEPARATOR} is the name of a program to put banner and trailer
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# pages around the job.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ -x ${LOCALPATH}/lp.tsol_separator ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica LPTSOLSEPARATOR=${LOCALPATH}/lp.tsol_separator
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaelse
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "${LOCALPATH}/lp.tsol_separator not found." >&2
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit 1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Error message formatter:
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Invoke as
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# errmsg severity message-number problem help
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# where severity is "ERROR" or "WARNING", message-number is
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# a unique identifier, problem is a short description of the
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# problem, and help is a short suggestion for fixing the problem.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaLP_ERR_LABEL="UX:lp"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaE_IP_ARGS=1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaE_IP_OPTS=2
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#E_IP_FILTER=3
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaE_IP_UNKNOWN=5
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaE_IP_BADFILE=6
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaE_IP_ERRORS=12 # (in slow.filter)
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaerrmsg () {
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica case $1 in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ERROR )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica sev=" ERROR";
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica WARNING )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica sev="WARNING";
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica esac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "${LP_ERR_LABEL}:$2 ${sev}: $3
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica TO FIX: $4" >&5
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica###########
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica##
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica## Check arguments
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica###########
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaparse () {
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "`expr \"$1\" : \"^[^=]*=\(.*\)\"`"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica##
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica## Error Cleanup and Exit
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica##
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaexit_clean()
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica{
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -f "${LPTMPDIR}/pr_eexit_code.$$" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica /bin/rm ${LPTMPDIR}/pr_eexit_code.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -f "${LPTMPDIR}/small_banner.$$" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica /bin/rm ${LPTMPDIR}/small_banner.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -f "${LPTMPDIR}/banner.exit_code.$$" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica /bin/rm ${LPTMPDIR}/banner.exit_code.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -f "${LPTMPDIR}/banner.errmsg.$$" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica /bin/rm ${LPTMPDIR}/banner.errmsg.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -f "${tmpfile}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica /bin/rm "${tmpfile}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit $1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# This program is invoked as
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# ${SPOOLDIR}/.../printer request-id user title copies options files...
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# The first three arguments are simply reprinted on the banner page,
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# the fourth (copies) is used to control the number of copies to print,
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# the fifth (options) is a blank separated list (in a single argument)
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# of user or Spooler supplied options (without the -o prefix),
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# and the last arguments are the files to print.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ $# -lt 5 ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica errmsg ERROR ${E_IP_ARGS} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "wrong number of arguments to interface program" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "consult your system administrator"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit 1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaprinter=`basename $0`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricarequest_id=$1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricauser_name=$2
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricatitle=$3
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricacopies=$4
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaoption_list=$5
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricashift 5
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafiles="$*"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# debug sent to file if defined in /etc/syslog.conf
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# syslog.conf entry:
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# lpr.debug /path/filename
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " "
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" "INPUT"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printer : ${printer}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica request_id : ${request_id}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica user_name : ${user_name}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " title : ${title}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica copies : ${copies}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica option_list : ${option_list}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " files : ${files}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" " \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica spooler_key ${SPOOLER_KEY}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# default: do print a banner
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricanobanner=no
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricanolabels="no"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricanofilebreak="no"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricainlist=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricadata_file_flag=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafor i in ${option_list}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricado
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica case "${inlist}${i}" in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica nobanner )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica nobanner="yes"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica nofilebreak )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica nofilebreak="yes"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica nolabels )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica nolabels="yes"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # If you want to add simple options (e.g. -o simple)
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # identify them here.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# simple )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# simple="yes"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica cpi=pica )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica cpi=10
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica cpi=elite )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica cpi=12
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica cpi=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica cpi=`parse ${i}`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica lpi=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica lpi=`parse ${i}`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica length=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica length=`parse ${i}`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica width=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica width=`parse ${i}`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica dest=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica dest="-d `parse ${i}`"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica protocol=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica protocol="-P `parse ${i}`"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica bsdctrl=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica controlfile="-c `parse ${i}`"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica timeout=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica timeout="-t `parse ${i}`"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica data-file-type=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica data_file_flag="-f `parse ${i}`"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # If you want to add simple-value options (e.g. -o value=a)
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # identify them here.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# value=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# value=`parse ${i}`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # If you want to add options that,
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # take a list (e.g. -o lopt='a b c'), identif
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # them here and below (look for LOPT).
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# flist=* | lpd=* | options=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica flist=* | lpd=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#LOPT stty=* | flist=* | lpd=* | lopt=* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica inlist=`expr "${inlist}${i}" : "^\([^=]*=\)"`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica case "${i}" in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${inlist}\'*\' )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica item=`expr "${i}" : "^[^=]*='*\(.*\)'\$"`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${inlist}\' )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica continue
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${inlist}\'* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica item=`expr "${i}" : "^[^=]*='*\(.*\)\$"`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${inlist}* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica item=`expr "${i}" : "^[^=]*=\(.*\)\$"`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica *\' )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica item=`expr "${i}" : "^\(.*\)'\$"`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica * )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica item="${i}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica esac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # We don't dare use "eval" because a clever user could
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # put something in an option value that we'd end up
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # exec'ing.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica case "${inlist}" in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica flist= )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica flist="${flist} ${item}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica lpd= )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica lpd="${lpd} ${item}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#LOPT lopt= )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#LOPT lopt="${lopt} ${item}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#LOPT ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# options= )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# options="${options} ${item}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica esac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica case "${i}" in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${inlist}\'*\' )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica inlist=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${inlist}\'* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica *\' | ${inlist}* )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica inlist=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica esac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica * )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica errmsg WARNING ${E_IP_OPTS} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "unrecognized \"-o ${i}\" option" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "check the option, resubmit if necessary
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printing continues"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica esac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricadone
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" "term : ${TERM}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ -z "${FILTER}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # If no filter is being used, we use netpr to push the
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # file to the printer.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # (QUOTES ARE IMPORTANT!)
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica case "$TERM" in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica PS )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # make the "postscript" printers use cat
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # (TSOL banners are added during filtering, so we have
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # to use some filter.)
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica FILTER=/bin/cat
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica PSR )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # make the "reverse postscript" printers reverse the
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # output and the use postio to talk to the printer
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #FILTER="/usr/lib/lp/postscript/postreverse "
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #FILTER=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica FILTER="/usr/lib/lp/postscript/postreverse "
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica * )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # We don't know the type, so just assume that the
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # input and output are the same. Use netpr.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #FILTER=/bin/cat
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica FILTER=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica esac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# sets default value for ordering of data and control files with
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# bsd protocol. Default: data files first. Administrator
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# may set to control file first with lpadmin -o bsdctrl=first
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricabanner_flag=""
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricacase "${nobanner}" in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica yes )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica banner_flag="-b"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaesac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaNETPR="/usr/lib/lp/bin/netpr ${banner_flag} ${data_file_flag} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica -I ${request_id} -U ${user_name} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica -p ${printer} ${dest} -T \"${title}\" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${timeout} ${protocol} ${controlfile} "
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaLPTELL_OPTS="-l" # netpr sends LaserWriter style messages back
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" "NETPR= ${NETPR}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" "filter : ${FILTER}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricanode=`uname -n`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricapid=$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricatmpfile=${LPTMPDIR}/${node}.${pid}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" "tmpfile : ${tmpfile}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Set up filter for banner page
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricabanner_filter=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricacase "${TERM}" in
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaPS | PSR )
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica banner_filter=" | /usr/lib/lp/postscript/postprint "
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica LPTELL_OPTS="-l"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ;;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaesac
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Build temporary file that is the banner page
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaPAD="#####${NL}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaCR="\r"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaNL="${CR}\n"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaFF=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricasmall_banner() {
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "${CR}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "${PAD}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "##### User: ${user_name}${NL}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -n "${title}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "##### Title: ${title}${NL}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "##### Date: `LANG=C date '+%a %H:%M %h %d, %Y'`${NL}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "##### Job: ${request_id}${NL}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "${PAD}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -n "${FF}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo "${CR}${FF}\c"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Doing small banner as we don't know what printer is out there
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricabanner=small_banner
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica## Skip this for PS/PSR printers, since lp.tsol_separator handles the banners
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ "no" = "${nobanner}" -a "${TERM}" != "PSR" -a "${TERM}" != "PS" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica eval "${banner} ${banner_filter}" 2>&1 1>${LPTMPDIR}/small_banner.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica###########
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica##
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica## Surround the job by PostScript code to produce banner
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica## and trailerpages and page headers and footers.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica##
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica###########
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaBANNER_EXIT_CODE=${LPTMPDIR}/banner.exit_code.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaecho 0 > ${BANNER_EXIT_CODE}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaTSOLSEPARATOR_LOG=${LPTMPDIR}/banner.errmsg.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricatsol_bannerize () {
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica TSOLSEPARATOR_OPTS="-e ${TSOLSEPARATOR_LOG}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "yes" = "${nolabels}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica TSOLSEPARATOR_OPTS="${TSOLSEPARATOR_OPTS} -l"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "yes" = "${nobanner}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica TSOLSEPARATOR_OPTS="${TSOLSEPARATOR_OPTS} -t /dev/null -b /dev/null"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "${TERM}" = "PSR" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica TSOLSEPARATOR_OPTS="${TSOLSEPARATOR_OPTS} -r"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # Get rid of the #, TAB and NL characters in the title
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica tsol_title=`echo $title`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica tsol_title=`echo $tsol_title | sed 's/#//g'`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica logger -p lpr.debug -t "tsol_netstandard: ${request_id}" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "banner command: ${LPTSOLSEPARATOR} ${TSOLSEPARATOR_OPTS} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${printer} ${request_id} ${user_name} \"${tsol_title}\" ${file}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${LPTSOLSEPARATOR} ${TSOLSEPARATOR_OPTS} ${printer} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ${request_id} ${user_name} "${tsol_title}" ${file}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo $? > ${BANNER_EXIT_CODE}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica true
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricabannerize=tsol_bannerize
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ "yes" = "${nobanner}" -a "yes" = "${nolabels}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica bannerize=cat
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ "${TERM}" != "PSR" -a "${TERM}" != "PS" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica bannerize=cat
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Print banner page before job unless PS or PSR.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ "no" = "${nobanner}" -a "${TERM}" != "PSR" -a "${TERM}" != "PS" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica (
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica eval ${NETPR} ${LPTMPDIR}/small_banner.$$ 2>&1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo $? > ${LPTMPDIR}/pr_eexit_code.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ) | ${LPTELL} ${LPTELL_OPTS} ${printer}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit_code=`cat ${LPTMPDIR}/pr_eexit_code.$$`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica logger -p lpr.debug -t "tsol_netstandard: ${request_id}" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "banner page exit code : ${exit_code}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricai=1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricawhile [ $i -le $copies ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricado
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica for file in ${files}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica do
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -r "${file}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ ! -z "${FILTER}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica (
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # There is a filter, use it
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # Put 0<${file} before the "eval" to keep
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # clever users from giving a file name that
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # evaluates as something to execute.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # Redirect stderr to stdout so LPTELL will
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # get error messages from pipe.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica 0<${file} $bannerize | eval ${FILTER} 2>&1 1>${tmpfile}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo $? > ${LPTMPDIR}/pr_eexit_code.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ) | ${LPTELL} ${LPTELL_OPTS} ${printer}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # if lp.tsol_separator had an error, send its logged
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # error message to LPTELL.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica banner_exit_code=`cat ${BANNER_EXIT_CODE}`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -n "${banner_exit_code}" -a \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica 0 -ne "${banner_exit_code}" -a \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica -n "${LPTELL}" -a \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica -r "${TSOLSEPARATOR_LOG}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica cat ${TSOLSEPARATOR_LOG} | ${LPTELL} ${printer}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo 77 > ${LPTMPDIR}/pr_eexit_code
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit_code=`cat ${LPTMPDIR}/pr_eexit_code.$$`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica logger -p lpr.debug \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica -t "tsol_netstandard: ${request_id}" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "filter exit_code : ${exit_code}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -n "${exit_code}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "${exit_code}" -eq 0 ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printfile=${tmpfile}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica else
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # The filter did not succeed, so don't try to print
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printfile=
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica else
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printfile=${file}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica logger -p lpr.debug \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica -t "tsol_netstandard: ${request_id}" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "printfile : ${printfile}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # Print the file
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -r "${printfile}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica (
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica eval ${NETPR} ${printfile} 2>&1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica echo $? > ${LPTMPDIR}/pr_eexit_code.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica ) | ${LPTELL} ${LPTELL_OPTS} ${printer}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit_code=`cat ${LPTMPDIR}/pr_eexit_code.$$`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica logger -p lpr.debug \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica -t "tsol_netstandard: ${request_id}" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "netpr exit_code : ${exit_code}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# if [ -f "${tmpfile}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# /bin/rm "${tmpfile}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -n "${exit_code}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "${exit_code}" -eq 0 ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printone=yes
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica else
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "${exit_code}" -lt 128 ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica noprint=yes
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica else
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica retry=yes
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica else
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica errmsg WARNING ${E_IP_BADFILE} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "cannot read temporary file \"${printfile}\""\
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "see if file still exists,
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica or consult your system administrator;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printing continues"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica else
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # Don't complain about not being able to read
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # a file on second and subsequent copies, unless
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # we've not complained yet. This removes repeated
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # messages about the same file yet reduces the
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # chance that the user can remove a file and not
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica # know that we had trouble finding it.
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica #####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ "${i}" -le 1 -o -z "${badfileyet}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica errmsg WARNING ${E_IP_BADFILE} \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "cannot read file \"${file}\"" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "see if the file still exists and is readable,
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica or consult your system administrator;
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica printing continues"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica badfileyet=yes
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# for file in ${files}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica done
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica i=`expr $i + 1`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricadone
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# If printing in reverse order, print the banner page now
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# Skip this for TSOL, since lp.tsol_separator handles the banners
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#####
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica#
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# if [ "no" = "${nobanner}" -a "${TERM}" = "PSR" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# (
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# eval ${NETPR} ${LPTMPDIR}/small_banner.$$ 2>&1
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# echo $? > ${LPTMPDIR}/pr_eexit_code.$$
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# ) | ${LPTELL} ${LPTELL_OPTS} ${printer}
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica# fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaexit_code=`cat ${LPTMPDIR}/pr_eexit_code.$$`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "banner page exit code : ${exit_code}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaif [ -n "${printone}" -a -z "${retry}" -a -z "${noprint}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricathen
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit_code=`expr 0`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaelse
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica if [ -n "${retry}" -a -z "${printone}" -a -z "${noprint}" ]
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica then
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit_code=`expr 129`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica else
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica exit_code=`expr 1`
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica fi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricafi
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricalogger -p lpr.debug -t "tsol_netstandard: ${request_id}" \
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica "FINAL exit_code : ${exit_code}"
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01rica
f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01ricaexit_clean ${exit_code}