Listing 3: Rerouting print jobs
#!/bin/sh
# Script to reroute print jobs that were printed to the printers "lp" or "lw".
# This script will search the user's .login file for the "setenv PRINTER"
# statement. It will then use that printer definition to reroute the print
# job to that printer.
BINDIR=/usr/local/bin
PATH=$BINDIR:/bin:/usr/bin:/usr/ucb:/usr/local/lib/ts
export PATH
while test $# != 0
do case "$1" in
-n) user=$2 ; shift ;;
-n*) user=`expr $1 : '-.\(.*\)'` ;;
-h) host=$2 ; shift ;;
-h*) host=`expr $1 : '-.\(.*\)'` ;;
-*) ;;
*) afile=$1 ;;
esac
shift
done
uhome=`ypcat passwd | grep "^$user:" | cut -d":" -f6`
cd $uhome
pname=
pname=`grep "^setenv PRINTER" .login | cut -d" " -f3`
if [ -z "$pname" ]; then
echo "PRINTER variable not defined in .login file for $user" |
/usr/ucb/mail -s "Print job failed" $user,print_manager
exit
fi
if [ "$pname" = "lw" ]; then
cat /usr/local/lib/ts/lw_msg | /usr/ucb/mail -s "Print job failed"
$user,print_manager
exit
fi
cat - | lpr -P"$pname"
exit
|