summaryrefslogtreecommitdiff
path: root/dviware/quicspool/src/glpr
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/quicspool/src/glpr')
-rw-r--r--dviware/quicspool/src/glpr104
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