#!/bin/sh

#
# Portable version of 'which'
#
pathfind() {
    if [ "$1" = -p ]; then
	optp=1
	shift
    else
	optp=0
    fi
    OLDIFS="$IFS"
    IFS=:
    for p in $PATH; do
	if [ -x "$p/$*" ]; then
	    if [ $optp = 1 ]; then
		echo "$p/$*"
	    fi
	    IFS="$OLDIFS"
	    return 0
	fi
    done
    IFS="$OLDIFS"
    return 1
}

#
#	Modify select PPD files
#
if pathfind cups-config; then
    cupsdev=1
else
    cupsdev=0
fi

awk '
BEGIN {
    negate = 1
}

{
    print
}

/"\(C110\)"/			{ do_cmd = "foo2lava-pjl" }
/"\(mc1600W\)"/			{ do_cmd = "foo2lava-pjl" }
/"\(mc1680MF\)"/		{ do_cmd = "foo2lava-pjl" }
/"\(mc1690MF\)"/		{ do_cmd = "foo2lava-pjl" }
/"\(magicolor 2490 MF\)"/	{ do_cmd = "foo2lava-pjl" }
/"\(mc2530DL\)"/		{ do_cmd = "foo2lava-pjl"; negate = 0 }
/"\(magicolor 4690MF\)"/	{ do_cmd = "foo2lava-pjl" }

/^\*cupsFilter:/ {
    if (cupsdev && do_cmd)
    {
	print "*cupsFilter:\t\"application/vnd.cups-command 100 command2" \
		do_cmd "\""

	print "*% Specify the list of commands we support"
	print "*cupsCommands:\t\"PrintSelfTestPage ReportLevels\""

	# SNMP marker levels are WRONG
	print "*cupsSNMPSupplies:\tFalse"

	# When cups gets updated for USB bidirectional (v1.5???) ...
	# print "*cupsBIDI:\tTrue"

	printf "*foo2zjsNegateMarkerLevels:\t%s\n",
	    negate ? "True" : "False"
    }
}
' cupsdev=$cupsdev
