#! /bin/sh
PS_PRINTER_NAME=psserv
INTERN_PRINTER_NAME=rawHP

REMOTE_PRINTER_NAME=cenhp2p
REMOTE_PRINTER_SERVER=cen2hp

DOMAIN=/
SERVER_FILES_LOC=/usr/lib/NextPrinter/Server
SPOOL_DIR=/usr/spool/NeXT

# PS Psudo Printer, direct HP printer 
echo "Loading NIS database with printer definitions."
echo "
name = printers;
CHILDREN = ({
    name = $PS_PRINTER_NAME;
    af = /usr/adm/$PS_PRINTER_NAME.acct;
    cf = /usr/lib/NextPrinter/Server/pscf;
    df = /usr/lib/NextPrinter/Server/psdf;
    gf = /usr/lib/NextPrinter/Server/psgf;
    if = /usr/lib/NextPrinter/Server/norm;
    lf = \"/usr/adm/lpd-errs\";
    lp = /dev/null;
    mx = 0;
    nf = /usr/lib/NextPrinter/Server/psnf;
    note = \"Prints only PS documents to central Printer\";
    rf = /usr/lib/NextPrinter/Server/psrf;
    sb = \"\";
    sd = $SPOOL_DIR/$PS_PRINTER_NAME;
    sf = \"\";
    tf = /usr/lib/NextPrinter/Server/pstf;
    ty = Unknown;
    vf = /usr/lib/NextPrinter/Server/psvf;
}, {
    name = $INTERN_PRINTER_NAME;
    af = /usr/adm/$PS_PRINTER_NAME.acct;
    lf = \"/usr/adm/lpd-errs\";
    lp = \"\";
    mx = 0;
    note = \"Raw HPII Printer, do not send PS to it!!\";
    rm = $REMOTE_PRINTER_SERVER;
    rp = $REMOTE_PRINTER_NAME;
    sd = $SPOOL_DIR/$INTERN_PRINTER_NAME;
});
" | niload -r /printers $DOMAIN

# Make printer spooler directories
echo "Adding Printer Spooler directories."
if [ ! -d $SPOOL_DIR/$PS_PRINTER_NAME ]; then
	mkdir $SPOOL_DIR/$PS_PRINTER_NAME
fi
if [ ! -d $SPOOL_DIR/$INTERN_PRINTER_NAME ]; then
	mkdir $SPOOL_DIR/$INTERN_PRINTER_NAME
fi

# Install modified lpd.comm file (keeping the old one around)
echo "Changing lpd.comm script (old one has an extension *.old)."
if [ -f $SERVER_FILES_LOC/lpd.comm ]; then
	mv $SERVER_FILES_LOC/lpd.comm $SERVER_FILES_LOC/lpd.comm.old
fi
echo "#! /bin/sh
# lpd interface script for prserver.
# We use sh instead of csh here because it is faster.  Especially, no .cshrc.
# Note that this script is NOT used with the \"if\" case.

# Make sure we do not get the wrong TranScript filter.
PATH=/bin:/usr/bin:/usr/ucb:/usr/lib/transcript
export PATH

DIRECT_PRINTER=$INTERN_PRINTER_NAME

# Cannot pass file parameter through to prserver.  It will be hooked up to stdin.
while test \$# != 0; do
    case \"\$1\" in
        -f) FILE=\$2; shift;;
        -p) PRINTER=\$2; shift;;
        -n) USER=\$2; shift;;
        -h) HOST=\$2; shift;;
        *) ;;
    esac
    shift
done

PRSERVER=\"/usr/lib/NextPrinter/Server/ps2pcl -r3 \"

FILTER=\`basename \$0\`
case \$FILTER in
    norm) \$PRSERVER | lpr -v -P \$DIRECT_PRINTER ;;
    pstf) pscat | \$PRSERVER | lpr -v -P \$DIRECT_PRINTER ;;
    psgf) psplot | \$PRSERVER | lpr -v -P \$DIRECT_PRINTER ;;
    psnf) psdit | \$PRSERVER | lpr -v -P \$DIRECT_PRINTER ;;
    psdf) psbad \$FILTER \$PRINTER \$USER \$HOST | \$PRSERVER | lpr -v -P \$DIRECT_PRINTER ;;
    psvf|pscf|psrf) psbad \$FILTER \$PRINTER \$USER \$HOST | \$PRSERVER | lpr -v -P \$DIRECT_PRINTER ;;
esac
" > $SERVER_FILES_LOC/lpd.comm
chmod 755 $SERVER_FILES_LOC/lpd.comm

# Make link for norm printer type
echo "Adding a link for the PS type \"norm\"."
if [ ! -h $SERVER_FILES_LOC/norm ]; then
	ln -s $SERVER_FILES_LOC/lpd.comm $SERVER_FILES_LOC/norm
fi

# finally ensure ps conversion prigram is there!
echo "Installing ps2pcl program."
if [ -f $SERVER_FILES_LOC/ps2pcl ]; then
	mv $SERVER_FILES_LOC/ps2pcl $SERVER_FILES_LOC/ps2pcl.old
fi
install -s -o root -g wheel -m 755 ps2pcl $SERVER_FILES_LOC



