94 lines · 2.0 KB · Shell
RawDownload
## 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/postscriptPOSTLIB=/usr/lib/postscriptFONTDIR=/usr/lib/font POSTIO=$POSTBIN/postioTROFFTABLE=$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    shiftdone if [ ! "$DEVICE" -a ! "$LIBRARY" ]; then    echo "$0: no device or shell library" >&2    exit 1fi 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    fidone