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