xref: /plan9/sys/src/cmd/postscript/buildtables/buildtables.sh (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1*7dd7cddfSDavid du Colombier#
2*7dd7cddfSDavid du Colombier# Builds one or more font width tables or the typesetter description
3*7dd7cddfSDavid du Colombier# file on a PostScript printer. Assumes you have direct access to the
4*7dd7cddfSDavid du Colombier# printer's serial port. No arguments means build a standard collection
5*7dd7cddfSDavid du Colombier# of tables - usually the LaserWriter Plus set. See trofftable and the
6*7dd7cddfSDavid du Colombier# shell library files /usr/lib/font/dev*/shell.lib for more details.
7*7dd7cddfSDavid du Colombier#
8*7dd7cddfSDavid du Colombier
9*7dd7cddfSDavid du Colombierset -e
10*7dd7cddfSDavid du Colombier
11*7dd7cddfSDavid du ColombierPOSTBIN=/usr/lbin/postscript
12*7dd7cddfSDavid du ColombierPOSTLIB=/usr/lib/postscript
13*7dd7cddfSDavid du ColombierFONTDIR=/usr/lib/font
14*7dd7cddfSDavid du Colombier
15*7dd7cddfSDavid du ColombierPOSTIO=$POSTBIN/postio
16*7dd7cddfSDavid du ColombierTROFFTABLE=$POSTBIN/trofftable
17*7dd7cddfSDavid du Colombier
18*7dd7cddfSDavid du ColombierBAUDRATE=
19*7dd7cddfSDavid du ColombierDEVICE=
20*7dd7cddfSDavid du ColombierLIBRARY=
21*7dd7cddfSDavid du Colombier
22*7dd7cddfSDavid du Colombierwhile [ -n "$1" ]; do
23*7dd7cddfSDavid du Colombier    case $1 in
24*7dd7cddfSDavid du Colombier	-C)  shift; OPTIONS="$OPTIONS -C$1";;
25*7dd7cddfSDavid du Colombier	-C*) OPTIONS="$OPTIONS $1";;
26*7dd7cddfSDavid du Colombier
27*7dd7cddfSDavid du Colombier	-F)  shift; FONTDIR=$1;;
28*7dd7cddfSDavid du Colombier	-F*) FONTDIR=`echo $1 | sed s/-F//`;;
29*7dd7cddfSDavid du Colombier
30*7dd7cddfSDavid du Colombier	-H)  shift; OPTIONS="$OPTIONS -H$1";;
31*7dd7cddfSDavid du Colombier	-H*) OPTIONS="$OPTIONS $1";;
32*7dd7cddfSDavid du Colombier
33*7dd7cddfSDavid du Colombier	-S)  shift; LIBRARY=$1;;
34*7dd7cddfSDavid du Colombier	-S*) LIBRARY=`echo $1 | sed s/-S//`;;
35*7dd7cddfSDavid du Colombier
36*7dd7cddfSDavid du Colombier	-T)  shift; DEVICE=$1;;
37*7dd7cddfSDavid du Colombier	-T*) DEVICE=`echo $1 | sed s/-T//`;;
38*7dd7cddfSDavid du Colombier
39*7dd7cddfSDavid du Colombier	-b)  shift; BAUDRATE=$1;;
40*7dd7cddfSDavid du Colombier	-b*) BAUDRATE=`echo $1 | sed s/-b//`;;
41*7dd7cddfSDavid du Colombier
42*7dd7cddfSDavid du Colombier	-c)  shift; OPTIONS="$OPTIONS -c$1";;
43*7dd7cddfSDavid du Colombier	-c*) OPTIONS="$OPTIONS $1";;
44*7dd7cddfSDavid du Colombier
45*7dd7cddfSDavid du Colombier	-l)  shift; LINE=$1;;
46*7dd7cddfSDavid du Colombier	-l*) LINE=`echo $1 | sed s/-l//`;;
47*7dd7cddfSDavid du Colombier
48*7dd7cddfSDavid du Colombier	-s)  shift; OPTIONS="$OPTIONS -s$1";;
49*7dd7cddfSDavid du Colombier	-s*) OPTIONS="$OPTIONS $1";;
50*7dd7cddfSDavid du Colombier
51*7dd7cddfSDavid du Colombier	-t)  shift; OPTIONS="$OPTIONS -t$1";;
52*7dd7cddfSDavid du Colombier	-t*) OPTIONS="$OPTIONS $1";;
53*7dd7cddfSDavid du Colombier
54*7dd7cddfSDavid du Colombier	-?)  OPTIONS="$OPTIONS $1$2"; shift;;
55*7dd7cddfSDavid du Colombier	-?*) OPTIONS="$OPTIONS $1";;
56*7dd7cddfSDavid du Colombier
57*7dd7cddfSDavid du Colombier	*)   break;;
58*7dd7cddfSDavid du Colombier    esac
59*7dd7cddfSDavid du Colombier    shift
60*7dd7cddfSDavid du Colombierdone
61*7dd7cddfSDavid du Colombier
62*7dd7cddfSDavid du Colombierif [ ! "$DEVICE" -a ! "$LIBRARY" ]; then
63*7dd7cddfSDavid du Colombier    echo "$0: no device or shell library" >&2
64*7dd7cddfSDavid du Colombier    exit 1
65*7dd7cddfSDavid du Colombierfi
66*7dd7cddfSDavid du Colombier
67*7dd7cddfSDavid du ColombierLIBRARY=${LIBRARY:-${FONTDIR}/dev${DEVICE}/shell.lib}
68*7dd7cddfSDavid du Colombier
69*7dd7cddfSDavid du Colombier#
70*7dd7cddfSDavid du Colombier# No arguments means build everything return by the AllTables function.
71*7dd7cddfSDavid du Colombier#
72*7dd7cddfSDavid du Colombier
73*7dd7cddfSDavid du Colombierif [ $# -eq 0 ]; then
74*7dd7cddfSDavid du Colombier    . $LIBRARY
75*7dd7cddfSDavid du Colombier    set -- `AllTables`
76*7dd7cddfSDavid du Colombierfi
77*7dd7cddfSDavid du Colombier
78*7dd7cddfSDavid du Colombierfor i do
79*7dd7cddfSDavid du Colombier    SHORT=`echo $i | awk '{print $1}'`
80*7dd7cddfSDavid du Colombier    LONG=`echo $i | awk '{print $2}'`
81*7dd7cddfSDavid du Colombier
82*7dd7cddfSDavid du Colombier    if [ "$LINE" ]
83*7dd7cddfSDavid du Colombier	then echo "==== Building table $SHORT ===="
84*7dd7cddfSDavid du Colombier	else echo "==== Creating table program $SHORT.ps ===="
85*7dd7cddfSDavid du Colombier    fi
86*7dd7cddfSDavid du Colombier
87*7dd7cddfSDavid du Colombier    $TROFFTABLE -S$LIBRARY $OPTIONS $SHORT $LONG >$SHORT.ps
88*7dd7cddfSDavid du Colombier
89*7dd7cddfSDavid du Colombier    if [ "$LINE" ]; then
90*7dd7cddfSDavid du Colombier	$POSTIO -t -l$LINE ${BAUDRATE:+-b${BAUDRATE}} $SHORT.ps >$SHORT
91*7dd7cddfSDavid du Colombier	rm -f $SHORT.ps
92*7dd7cddfSDavid du Colombier    fi
93*7dd7cddfSDavid du Colombierdone
94*7dd7cddfSDavid du Colombier
95