# # Builds one or more font width tables or the typesetter description # file on a PostScript printer. Assumes you have direct access to the # printer's serial port. No arguments means build a standard collection # of tables - usually the LaserWriter Plus set. See trofftable and the # shell library files /usr/lib/font/dev*/shell.lib for more details. # set -e POSTBIN=/usr/lbin/postscript POSTLIB=/usr/lib/postscript FONTDIR=/usr/lib/font POSTIO=$POSTBIN/postio TROFFTABLE=$POSTBIN/trofftable BAUDRATE= DEVICE= LIBRARY= while [ -n "$1" ]; do case $1 in -C) shift; OPTIONS="$OPTIONS -C$1";; -C*) OPTIONS="$OPTIONS $1";; -F) shift; FONTDIR=$1;; -F*) FONTDIR=`echo $1 | sed s/-F//`;; -H) shift; OPTIONS="$OPTIONS -H$1";; -H*) OPTIONS="$OPTIONS $1";; -S) shift; LIBRARY=$1;; -S*) LIBRARY=`echo $1 | sed s/-S//`;; -T) shift; DEVICE=$1;; -T*) DEVICE=`echo $1 | sed s/-T//`;; -b) shift; BAUDRATE=$1;; -b*) BAUDRATE=`echo $1 | sed s/-b//`;; -c) shift; OPTIONS="$OPTIONS -c$1";; -c*) OPTIONS="$OPTIONS $1";; -l) shift; LINE=$1;; -l*) LINE=`echo $1 | sed s/-l//`;; -s) shift; OPTIONS="$OPTIONS -s$1";; -s*) OPTIONS="$OPTIONS $1";; -t) shift; OPTIONS="$OPTIONS -t$1";; -t*) OPTIONS="$OPTIONS $1";; -?) OPTIONS="$OPTIONS $1$2"; shift;; -?*) OPTIONS="$OPTIONS $1";; *) break;; esac shift done if [ ! "$DEVICE" -a ! "$LIBRARY" ]; then echo "$0: no device or shell library" >&2 exit 1 fi LIBRARY=${LIBRARY:-${FONTDIR}/dev${DEVICE}/shell.lib} # # No arguments means build everything return by the AllTables function. # if [ $# -eq 0 ]; then . $LIBRARY set -- `AllTables` fi for i do SHORT=`echo $i | awk '{print $1}'` LONG=`echo $i | awk '{print $2}'` if [ "$LINE" ] then echo "==== Building table $SHORT ====" else echo "==== Creating table program $SHORT.ps ====" fi $TROFFTABLE -S$LIBRARY $OPTIONS $SHORT $LONG >$SHORT.ps if [ "$LINE" ]; then $POSTIO -t -l$LINE ${BAUDRATE:+-b${BAUDRATE}} $SHORT.ps >$SHORT rm -f $SHORT.ps fi done