plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

generic (1314B)


      1 #!/usr/local/plan9/bin/rc
      2 # fn sigexit { rm -f $LPSPOOL/$LPDEST/.$pid.* $LPSPOOL/$LPDEST/$pid.* $LPSPOOL/$LPDEST }
      3 if (! ~ $DEBUG '') flag x +
      4 
      5 echo $THIS_HOST $DEST_HOST
      6 if (~ $THIS_HOST $DEST_HOST) {
      7 	if (! test -d $LPSPOOL/$LPDEST) {
      8 		mkdir $LPSPOOL/$LPDEST
      9 		chmod 777 $LPSPOOL/$LPDEST >[2]/dev/null
     10 		chmod +t $LPSPOOL/$LPDEST >[2]/dev/null
     11 	}
     12 }
     13 # Process and enqueue files to be printed
     14 # take arguments as input files
     15 i=0
     16 if (~ $#* 0) *=''
     17 for (j in $*) {
     18 	i= `{echo $i + 1|hoc}
     19 
     20 # check access to the file so that you know that a failure in the
     21 # processing is a drastic error which will cause an exit from lp.
     22 
     23 	if (~ $j '' || test -f $j) {
     24 		if (~ $THIS_HOST $DEST_HOST) {
     25 			echo $LPMACHID $LPUSERID $pid.$i 0 > $LPSPOOL/$LPDEST/.$pid.$i^id
     26 			lpinput $j lpsub process $LPPROC >$LPSPOOL/$LPDEST/.$pid.$i
     27 			if (~ $status '') {
     28 				mv $LPSPOOL/$LPDEST/.$pid.$i $LPSPOOL/$LPDEST/$pid.$i
     29 				mv $LPSPOOL/$LPDEST/.$pid.$i^id $LPSPOOL/$LPDEST/$pid.$i^id
     30 			}
     31 			if not {
     32 				rval='preprocessing failed'
     33 				rm -f $LPSPOOL/$LPDEST/.$pid.$i $LPSPOOL/queue/$LPDEST/.$pid.$i^id
     34 				exit $rval
     35 			}
     36 		}
     37 		if not {
     38 			{
     39 				echo -d^$LPDEST -pnoproc -M^$LPMACHID -u^$LPUSERID 
     40 				lpinput $j lpsub process $LPPROC
     41 			} | lpsend.rc $DEST_HOST
     42 			rval=$status
     43 		}
     44 	}
     45 	if not {
     46 		echo $j cannot be opened >[1=2]
     47 	}
     48 }