xref: /plan9-contrib/rc/bin/psfax (revision 14cc0f535177405a84c5b73603a98e5db6674719)
17dd7cddfSDavid du Colombier#!/bin/rc
27dd7cddfSDavid du Colombierview=no
37dd7cddfSDavid du Colombierstdin=no
47dd7cddfSDavid du Colombier
57dd7cddfSDavid du Colombierswitch($1){
67dd7cddfSDavid du Colombiercase -v
77dd7cddfSDavid du Colombier	view=yes
87dd7cddfSDavid du Colombier	shift
97dd7cddfSDavid du Colombier}
107dd7cddfSDavid du Colombier
117dd7cddfSDavid du Colombierswitch($#*){
127dd7cddfSDavid du Colombiercase 0 1
137dd7cddfSDavid du Colombier	echo usage: $0 telephone-number recipient [files]
147dd7cddfSDavid du Colombier	exit 0
157dd7cddfSDavid du Colombiercase 2
167dd7cddfSDavid du Colombier	stdin=yes
177dd7cddfSDavid du Colombier}
187dd7cddfSDavid du Colombier
197dd7cddfSDavid du Colombiertelno=$1
207dd7cddfSDavid du Colombiershift
217dd7cddfSDavid du Colombier
227dd7cddfSDavid du Colombierrecip=$1
237dd7cddfSDavid du Colombiershift
247dd7cddfSDavid du Colombier
257dd7cddfSDavid du Colombierscript=/tmp/fax.$pid
267dd7cddfSDavid du Colombierheader=/tmp/faxh.$pid
277dd7cddfSDavid du Colombieruser=`{cat /dev/user}
287dd7cddfSDavid du Colombiertmp=/tmp/page.$pid
297dd7cddfSDavid du Colombiertmpin=/tmp/page.in.$pid
307dd7cddfSDavid du Colombiertel=`{grep '\) '$user /lib/tel}
317dd7cddfSDavid du Colombiermyname=`{echo $tel | sed 's/ \(.*//'}
327dd7cddfSDavid du Colombierext=`{echo $tel | sed 's/.*\) [^ ]* [^ ]* ([^ ]*).*/\1/'}
337dd7cddfSDavid du Colombier
347dd7cddfSDavid du Colombierfn sigint{
357dd7cddfSDavid du Colombier	#rm -f $tmp.* $tmpin.* $script $header $header.*
367dd7cddfSDavid du Colombier	exit interrupt
377dd7cddfSDavid du Colombier
387dd7cddfSDavid du Colombier}
397dd7cddfSDavid du Colombier
407dd7cddfSDavid du Colombier# gs insists on reading its standard input, so we read quit.ps to cut it off.
417dd7cddfSDavid du Colombierswitch($stdin){
427dd7cddfSDavid du Colombiercase yes
437dd7cddfSDavid du Colombier	cat > $tmpin
447dd7cddfSDavid du Colombier	gs -dSAFER '-sDEVICE=dfaxlow' '-sOUTPUTFILE='$tmp'.%.3d' -dNOPAUSE -dQUIET $tmpin quit.ps
457dd7cddfSDavid du Colombiercase *
467dd7cddfSDavid du Colombier	gs -dSAFER '-sDEVICE=dfaxlow' '-sOUTPUTFILE='$tmp'.%.3d' -dNOPAUSE -dQUIET $* quit.ps
477dd7cddfSDavid du Colombier}
487dd7cddfSDavid du Colombier
497dd7cddfSDavid du Colombierpages=`{echo $tmp.*|wc -w}
507dd7cddfSDavid du Colombier
51*14cc0f53SDavid du Colombier# use delimiters that are unlikely to be supplied in arguments
52*14cc0f53SDavid du Colombierecho -n sFAXddd∮	 >$script
537dd7cddfSDavid du Colombierecho -n `{date}		>>$script
54*14cc0f53SDavid du Colombierecho ∮			>>$script
55*14cc0f53SDavid du Colombierecho -n sFAXFFF∮	>>$script
567dd7cddfSDavid du Colombierecho -n $myname 	>>$script
57*14cc0f53SDavid du Colombierecho ∮			>>$script
58*14cc0f53SDavid du Colombierecho -n sFAXEEE∮	>>$script
597dd7cddfSDavid du Colombierecho -n $user 		>>$script
60*14cc0f53SDavid du Colombierecho ∮			>>$script
61*14cc0f53SDavid du Colombierecho -n sFAXVVV∮	>>$script
627dd7cddfSDavid du Colombierecho -n $ext 		>>$script
63*14cc0f53SDavid du Colombierecho ∮			>>$script
64*14cc0f53SDavid du Colombierecho -n sFAXTTT∮	>>$script
657dd7cddfSDavid du Colombierecho -n $recip 		>>$script
66*14cc0f53SDavid du Colombierecho ∮			>>$script
67*14cc0f53SDavid du Colombierecho -n sFAXfff∮	>>$script
687dd7cddfSDavid du Colombierecho -n $telno 		>>$script
69*14cc0f53SDavid du Colombierecho ∮			>>$script
70*14cc0f53SDavid du Colombierecho -n sFAXPPP∮	>>$script
717dd7cddfSDavid du Colombierecho -n $pages 		>>$script
72*14cc0f53SDavid du Colombierecho ∮			>>$script
737dd7cddfSDavid du Colombiersed -f $script /sys/lib/fax/h.ps > $header
747dd7cddfSDavid du Colombier
757dd7cddfSDavid du Colombiergs -dSAFER '-sDEVICE=dfaxlow' '-sOUTPUTFILE='$header'.%.3d' -dNOPAUSE -dQUIET $header quit.ps
767dd7cddfSDavid du Colombier
777dd7cddfSDavid du Colombierfiles=()
787dd7cddfSDavid du Colombierfor(i in $header.* $tmp.*){
797dd7cddfSDavid du Colombier	files=($files -f $i)
807dd7cddfSDavid du Colombier}
817dd7cddfSDavid du Colombier
827dd7cddfSDavid du Colombierswitch($view){
837dd7cddfSDavid du Colombiercase no
847dd7cddfSDavid du Colombier	upas/qer $files /mail/faxoutqueue fax $user $telno < /dev/null
85*14cc0f53SDavid du Colombier	rx fax /sys/lib/fax/faxgoose
867dd7cddfSDavid du Colombiercase yes
877dd7cddfSDavid du Colombier	page $header.* $tmp.*
887dd7cddfSDavid du Colombier}
897dd7cddfSDavid du Colombier
907dd7cddfSDavid du Colombier#rm -f $tmp.* $header $script $header.* $tmpin
91