#!/bin/sh
# corrected  version of Feb 13, 2000
#
# make pnm2ppa command line for postprocessing to produce PPA output for
# HP's PPA printers (DeskJet 710, 720, 820, 1000 series)
# Duncan Haldane, the pnm2ppa project, <duncan_haldane@users.sourceforge.net>
# see also http://sourceforge.net/project/?group_id=1322 (pnm2ppa project)
CONFIG_DIR=/etc

PPA_CONFIG=$1
PAPERSIZE=$2
EXTRA_PPA_OPTIONS=$@
for arg in $1 $2 ; do
    EXTRA_PPA_OPTIONS=$(echo "${EXTRA_PPA_OPTIONS}" | eval "sed -e 's/^.*$arg//'")
done

# identify paper size
    if [ "$PAPERSIZE" = "letter" ]; then
	PPA_PAPERSIZE="-s letter"
    elif [ "$PAPERSIZE" = "a4" ]; then
	PPA_PAPERSIZE="-s a4"
    elif [ "$PAPERSIZE" = "legal" ]; then
	PPA_PAPERSIZE="-s legal"
    else 
	PPA_PAPERSIZE="-s letter"
    fi

# identify printer type
# (at present, a type 710 is treated as a type 720 in printerdb)
    if echo $PPA_CONFIG | grep -e "ppa710"  > /dev/null 2>&1 ; then
	PPA_PRINTER="-v 710"  
    elif echo $PPA_CONFIG | grep -e "ppa720"  > /dev/null 2>&1 ; then
	PPA_PRINTER="-v 720"  
    elif echo $PPA_CONFIG | grep -e "ppa820"  > /dev/null 2>&1 ; then
	PPA_PRINTER="-v 820"  
    elif echo $PPA_CONFIG | grep -e "ppa1000"  > /dev/null 2>&1 ; then
	PPA_PRINTER="-v 1000"  
    fi

if echo $PPA_CONFIG | grep -e "pbm"  >/dev/null 2>&1 ; then
# use the old pbm2ppa Black-and-White-only driver
# first check that old pbm2ppa driver is installed
    if ! pbm2ppa -h > /dev/null 2>&1 ; then
	echo "Error: ppaprint: pbm2ppa driver was not found"
	exit 1
    fi

# assemble the pbm2ppa command line: 

    PPA_CONF="$CONFIG_DIR/pbm2ppa.conf"
    if [ -f $PPA_CONF ] ; then
	PPA_CONF="-f $PPA_CONF"
    else
	PPA_CONF=""
    fi
    PPA_OPTIONS="$PPA_PRINTER $PPA_CONF $PPA_OPTIONS"
    PPA_OPTS="$PPA_CONF $PPA_PAPERSIZE $EXTRA_PPA_OPTIONS"
    PPA=" | pbm2ppa $PPA_PRINTER $PPA_OPTS  - - "

else
# use the new pnm2ppa driver with color support
# first check that new pnm2ppa driver is installed
    if ! pnm2ppa -h > /dev/null 2>&1 ; then
	echo "Error: ppaprint: pnm2ppa driver was not found"
	exit 1
    fi

# identify color option	
    if   echo $PPA_CONFIG | grep -e "ppa.*0b1"  > /dev/null 2>&1 ; then
	PPA_COLOR="--bw --eco"
    elif echo $PPA_CONFIG | grep -e "ppa.*0c1"  > /dev/null 2>&1 ; then
	PPA_COLOR="--eco"
    elif echo $PPA_CONFIG | grep -e "ppa.*0c2"  > /dev/null 2>&1 ; then
	PPA_COLOR="-p --eco"
    elif echo $PPA_CONFIG | grep -e "ppa.*0b2"  > /dev/null 2>&1 ; then
	PPA_COLOR="--bw"
    elif echo $PPA_CONFIG | grep -e "ppa.*0c3"  > /dev/null 2>&1 ; then
	PPA_COLOR=""
    elif echo $PPA_CONFIG | grep -e "ppa.*0c4"  > /dev/null 2>&1 ; then
	PPA_COLOR="-p"
    fi

# assemble the pnm2ppa command line: 
    PPA_CONF="$CONFIG_DIR/pnm2ppa.conf"
    if [ -f $PPA_CONF ] ; then
	PPA_CONF="-f $PPA_CONF"
    else
	PPA_CONF=""
    fi
    PPA_OPTS="$PPA_CONF $PPA_PAPERSIZE $PPA_COLOR $EXTRA_PPA_OPTIONS"
    PPA=" | pnm2ppa $PPA_PRINTER $PPA_OPTS -i - -o - "
fi

echo $PPA

exit 0



