#! /bin/sh [ -z $PRINTER_DEV ] && PRINTER_DEV=/dev/ttyS1 case "$1" in testpage) case "$2" in true|false) ;; *) echo "Usage: $0 testpage {true|false}" exit 1 ;; esac echo "serverdict begin 0 exitserver" > $PRINTER_DEV echo "statusdict begin $2 setdostartpage" > $PRINTER_DEV ;; setname) if [ "$2" = "" ] ; then echo "Usage: $0 setname \"printer name\"" exit 1 fi echo $2 | grep '[@:]' && { echo "$0: \"@\" and \":\" are not allowed in the printer name" exit 1; } echo "serverdict begin 0 exitserver" > $PRINTER_DEV echo "statusdict begin ($2) setprintername" > $PRINTER_DEV ;; setserial) if [ "$#" != "3" ]; then cat < $PRINTER_DEV statusdict begin 25 sccbatch exch pop $2 eq {stop} if serverdict begin 0 exitserver statusdict begin 25 $3 $2 setsccbatch EOSS ;; printserial) cat << EOPS > $PRINTER_DEV /Helvetica findfont 14 scalefont setfont /cr{show 182 currentpoint 20 sub exch pop moveto}def /tb{show 300 currentpoint exch pop moveto}def /Which{5 -1 roll 4 exch sub -1 roll cr 3{pop}repeat}def statusdict begin 25 sccbatch end 182 650 moveto exch (Baud :)tb 10 string cvs cr (Parity:)tb dup 30 bitshift -30 bitshift (none-space)(odd)(even)(none-mark) Which (Handshake:)tb dup 27 bitshift -29 bitshift (XON/XOFF)(DSR/DTR)(ETX/ACK)(bad value) Which (Data bits:)tb dup 25 bitshift -30 bitshift (standard)(7)(8)(bad value) Which (Stop bits:)tb -7 bitshift 0 eq{(1)}{(2)}ifelse show showpage EOPS ;; *) echo "Usage: $0 {testpage|setname|setserial|printserial}" exit 1 ;; esac