Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#
# 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