diff options
Diffstat (limited to 'dviware/quicspool/src/glpr')
-rw-r--r-- | dviware/quicspool/src/glpr | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/dviware/quicspool/src/glpr b/dviware/quicspool/src/glpr new file mode 100644 index 0000000000..99a8718b0f --- /dev/null +++ b/dviware/quicspool/src/glpr @@ -0,0 +1,104 @@ +#! /bin/csh +# $Header: glpr,v 1.1 88/01/15 13:04:11 simpson Rel $ +# $Log: glpr,v $ +#Revision 1.1 88/01/15 13:04:11 simpson +#initial release +# +#Revision 0.2 87/12/21 12:29:52 simpson +#changed spelling of queuing +# +#Revision 0.1 87/12/11 18:30:58 simpson +#beta test +# +# The algorithm is as follows: +# If given -P flag, use that printer +# Decide which printer to use by (minutes after hr modulo # of printers) +# Assign states to printer +# If printer is idle, use it +# Look for idle printer +# If found +# use it +# Look for busy printer +# If found +# use it +# Look for stopped printer +# If found +# use it +# Else all printers are disabled +# Printers can be in 4 states: 1==disabled, 2==stopped, 3==busy, 4==idle +set printers=(sneezy dopey grumpy) +set landscape +set lprflags +while ($#argv > 0) + switch ($1) + case -P*: + lpr $lprflags $* + exit + case -L: + set landscape=l + shift + breaksw + default: + set lprflags=($lprflags $1) + shift + breaksw + endsw +end +@ index = `date|sed 's/.* [0-9][0-9]:\([0-9][0-9]\).*/\1/'` % $#printers + 1 +set i = 1 +set states=($printers) +while ($i <= $#printers) + /etc/lpc status $printers[$i]$landscape|fgrep 'queuing is disabled'>\ + /dev/null + if ($status == 0) then + set states[$i] = 1 + @ i++ + continue + endif + /etc/lpc status $printers[$i]$landscape|fgrep 'printing is disabled'>\ + /dev/null + if ($status == 0) then + set states[$i] = 2 + @ i++ + continue + endif + lpq -P$printers[$i]|fgrep 'no entries'>/dev/null + set portraitstatus=$status + lpq -P$printers[$i]l|fgrep 'no entries'>/dev/null + if ($portraitstatus == 0 & $status == 0) then + set states[$i] = 4 + else + set states[$i] = 3 + endif + @ i++ +end +if ($states[$index] == 4) then + lpr -P$printers[$index]$landscape $lprflags + exit +endif +set i = 1 +while ($i <= $#printers) + if ($states[$i] == 4) then + lpr -P$printers[$i]$landscape $lprflags + exit + endif + @ i++ +end +set i = 1 +while ($i <= $#printers) + if ($states[$i] == 3) then + lpr -P$printers[$i]$landscape $lprflags + exit + endif + @ i++ +end +set i = 1 +while ($i <= $#printers) + if ($states[$i] == 2) then + lpr -P$printers[$i]$landscape $lprflags + exit + endif + @ i++ +end +# If we get here, all printers are disabled! Try anything! +lpr -P$printers[$index]$landscape $lprflags |