Annotation of researchv10dc/cmd/lp/prtoserva.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * #!/bin/sh
                      3:  * #
                      4:  * # prt substitute - seems to work, but you have a bit more to do. My
                      5:  * # previous mail about the header (I deleted it) should describe other
                      6:  * # interesting header fields.
                      7:  * # usage: prt [-B] [-b bin] [-c copies] [-d dest] [-f form] [-h] [-j jobname]
                      8:  * #           [-K "KEYWORD value"] [-l language] [-m] [-o "filter options"]
                      9:  * #           [-p printmode] [-q] [-s sides] [-u userid] [-z] [-] [filename]
                     10: 
                     11:  * 
                     12:  * TMPFILE=/tmp/prt.$$
                     13:  * SYSTEM=mhuxo
                     14:  * REQUESTQ=/usr/add-on/unison/requestq
                     15:  * 
                     16:  * CMDUSED=`basename $0`
                     17:  * CMDVERNUM=3.1
                     18:  * TCMDISSUED=910619105115             # `date -s`
                     19:  * ACCTNUM=mh0000                      # need something here.
                     20:  * BIN=m100
                     21:  * COPIES=1
                     22:  * DEPARTMENT=11211
                     23:  * DESTINATION=mh/kodak
                     24:  * FORM=ANY
                     25:  * MODE=ANY
                     26:  * LANGUAGE=postscript
                     27:  * ORIGSYS=`hostname`
                     28:  * SIDES=1
                     29:  * USERSYS=`hostname`
                     30:  * USERID=`set \`who am i 2>/dev/null\`;echo $1`
                     31:  * USERNAME=$USERID
                     32:  * CMDLINE=$0
                     33:  * 
                     34:  * trap "rm -f $TMPFILE $TMPFILE.in" 0 1 2 3 15
                     35:  * 
                     36:  * MakeID() {
                     37:  *     #
                     38:  *     # Think normal prt id's are 4 characters followed by at most 8
                     39:  *     # chars of the system name - all apparently uncensored.
                     40:  *     #
                     41:  *     awk 'BEGIN{printf("%.4x%.8s", '$$', "'$USERSYS'")}' </dev/null
                     42:  * #   echo 7r4tsirius
                     43:  * }
                     44:  * 
                     45:  * Send() {
                     46:  *     cat $1 > $TMPFILE.in
                     47:  *     TOTALBYTES=`cat $TMPFILE.in | wc -c`
                     48:  *     REQID=`MakeID`
                     49:  *     case "$1" in
                     50:  *     -) FILENAME=stdin;;
                     51:  *     *) FILENAME=$1;;
                     52:  *     esac
                     53:  * 
                     54:  *     cat >$TMPFILE <<//EndHeader
                     55:  * @BYTECOUNT  0000000000
                     56:  * @DATA HEADER BEGIN
                     57:  * REQID               $REQID
                     58:  * CMDUSED             $CMDUSED
                     59:  * CMDVERNUM   $CMDVERNUM
                     60:  * TCMDISSUED  $TCMDISSUED
                     61:  * ACCTNUM             $ACCTNUM
                     62:  * BIN         $BIN
                     63:  * COPIES              $COPIES
                     64:  * DEPARTMENT  $DEPARTMENT
                     65:  * DEST                ${DEST:-mh}
                     66:  * DEVICE              $DEVICE
                     67:  * DEVICEGROUP $DEVICEGROUP
                     68:  * FILENAME    $FILENAME
                     69:  * FILTER              
                     70:  * FILTEROPTS  
                     71:  * FORM                $FORM
                     72:  * RGRADE              s
                     73:  * JOBNAME             
                     74:  * $KOPTS
                     75:  * LANGUAGE    $LANGUAGE
                     76:  * MAIL                y
                     77:  * MODE                $MODE
                     78:  * ORIGSYS             $ORIGSYS
                     79:  * SIDES               $SIDES
                     80:  * TOTALBYTES  $TOTALBYTES
                     81:  * USERDATA    y
                     82:  * USERSSYS    $USERSYS
                     83:  * USERID              $USERID
                     84:  * USERNAME    $USERNAME
                     85:  * CMDLINE             $CMDUSED -m -d$DESTINATION -l$LANGUAGE
                     86:  * @DATA HEADER END
                     87:  * //EndHeader
                     88:  * 
                     89:  *     cat $TMPFILE.in >>$TMPFILE
                     90:  *     ed $TMPFILE >/dev/null <<//EndEdit
                     91:  * /^@BYTECOUNT        00*$/s/00*/`ls -log $TMPFILE|awk '{printf("%10d\n", $5)}'`/
                     92:  * w
                     93:  * q
                     94:  * //EndEdit
                     95:  *     chmod ugo+r $TMPFILE            # probably unnecessary on your systems
                     96:  *     uucp -C $TMPFILE $SYSTEM!$REQUESTQ/$REQID
                     97:  *     echo request id $REQID on $SYSTEM
                     98:  * }
                     99:  * 
                    100:  * for i in "$@"
                    101:  * do
                    102:  *     case "$i" in
                    103:  *     -a*) ACCTNUM=`echo $i | sed s/-a//`;;
                    104:  *     -b*) BIN=`echo $i | sed s/-b//`;;
                    105:  *     -c*) COPIES=`echo $i | sed s/-c//`;;
                    106:  *     -d*) DESTINATION=`echo $i | sed s/-d//`;;
                    107:  *     -f*) FORM=`echo $i | sed s/-f//`;;
                    108:  *     -K*) case "$KOPTS" in
                    109:  *          "") KOPTS=`eval echo $i | sed s/-K//`;;
                    110:  *           *) KOPTS="$KOPTS
                    111:  *             `echo $i | sed s/-K//`";;
                    112:  *          esac;;
                    113:  *     -l*) LANGUAGE=`echo $i | sed s/-l//`;;
                    114:  *     -s*) SIDES=`echo $i | sed s/-s//`;;
                    115:  *     -u*) USERNAME=`echo $i | sed s/-u//`;;
                    116:  *     -p*) MODE=`echo $i | sed s/-p//`;;
                    117:  *     --)  shift; break;;
                    118:  *     -*)  echo "$0: bad option $i"; exit 1;;
                    119:  *     *)   break;;
                    120:  *     esac
                    121:  *     shift
                    122:  * done
                    123:  * 
                    124:  * DEST=`echo $DESTINATION | sed -n 's/\/.*//p'`
                    125:  * DEST=${DEST:-mh}
                    126:  * DEVICE=`basename $DESTINATION`
                    127:  * DEVICEGROUP=$DEVICE
                    128:  * 
                    129:  * for i in ${*:--}
                    130:  * do
                    131:  *     Send $i
                    132:  * done
                    133:  */
                    134: 
                    135: main(int argc, char *argv[]) {
                    136:        
                    137: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.