#! /bin/bash
#
# rastertoturboprint - CUPS spooler filter for turboprint driver system
#
# stdin = cupsraster bitmap image
# conversion to printer data using tpprint
#
# Copyright 2001-2004 ZEDOnet
# Version 1.92
# Created 1.6.2001 Florian Zeiler <zeiler@turboprint.de>
# 07.04.2005 synchronized with Mac version
#

########
# get Turboprint paths
########
eval $(cat "/etc/turboprint/system.cfg")
LOGFILE="$TPPATH_LOG/turboprint_cups.log"
TPPRINT="$TPPATH_BIN/tpprint"

########
# write some info to logfile
########
echo >> $LOGFILE || LOGFILE="/dev/null"
echo "#######################################################" >> $LOGFILE
echo "New print job $(date) (rastertoturboprint 1.92)" >> $LOGFILE
echo "job-id $1" >> $LOGFILE
echo "user $2" >> $LOGFILE
echo "title $3" >> $LOGFILE
echo "copies $4" >> $LOGFILE
echo "options $5" >> $LOGFILE
echo "file $6" >> $LOGFILE

########
# convert additional options to pass them to tpprint
########
# set the options parameter as the new command line
set -- $5
TPOPTION=""

for i ; do
	OPTION=${i%%=*}
	VALUE=${i##*=}
	if [ "$OPTION" = "turboprint" ] ; then
		TPOPTION="$TPOPTION -$VALUE"
	else
                case $OPTION in
                InputSlot|OutputBin|Duplex|PageSize|PageRegion|sides|media|zedo*)
                {
                # if [ "$PREFIX" != "com.apple" ] ; then
                        TPOPTION="$TPOPTION '---$i'"
                #fi
                };;
                esac
	fi
done

########
# call tpprint
#
# --cups : read most options from the cupsraster file
#          (driver, resolution, page size)
# -v2    : verbose level 2 = print all messages
# -l     : set name of logfile
########


TPCOMMANDLINE="$TPPRINT --ppdfile=$PPD --psheader=$PPD --cups -v2 -l$LOGFILE $TPOPTION - -"
echo "TPCOMMANDLINE=$TPCOMMANDLINE" >> $LOGFILE
echo "----------- Start of print job -----------" >> $LOGFILE
eval $TPCOMMANDLINE
echo "------------ End of print job ------------" >> $LOGFILE

########
# send remaining data from stdin to null device
########
cat > /dev/null
exit 0
