#!/bin/bash
#
# Wrap calls to magicfilter, so that we can composite mf rules.
#
#

# Collect the rule set, as it exists _NOW_
MF_RULE_DIR='/usr/share/printconf/mf_rules'
MF_RULES=$MF_RULE_DIR/mf[[:digit:]][[:digit:]]-*
TMP_FILE=`mktemp /tmp/printconf.XXXXXX` || exit 1
cat ./mf.cfg $MF_RULES | m4 > $TMP_FILE

# Find the effective language set to use.
LANG=`grep '^[[:space:]]*#[[:space:]]*FILTER_LOCALE=' ./mf.cfg | sed 's/^[[:space:]]*#[[:space:]]*FILTER_LOCALE=//;'`
[ -z "$LANG" ] && LANG=C
export LANG

# Try to close up some information exposure, and set the papersize for ghostscript
GS_PAPERSIZE=`grep '^[[:space:]]*#[[:space:]]*GS_PAPERSIZE=' ./mf.cfg | sed 's/^[[:space:]]*#[[:space:]]*GS_PAPERSIZE=//;'`
GS_OPTIONS="$GS_OPTIONS -dPARANOIDSAFER -sPAPERSIZE=$GS_PAPERSIZE"
export GS_OPTIONS

# Tell ghostscript where it might expect to find some fonts.
GS_FONTPATH=/usr/share/fonts
export GS_FONTPATH

# Debug expansion (This would be prettier if I knew more shell)
if [ -n "$DEBUG" ]; then
	case "$DEBUG" in
		2)
		DEBUGSTRING="--debug --debug"
		;;
		3)
		DEBUGSTRING="--debug --debug --debug"
		;;
		4)
		DEBUGSTRING="--debug --debug --debug --debug"
		;;
		5)
		DEBUGSTRING="--debug --debug --debug --debug --debug"
		;;
		*)
		DEBUGSTRING="--debug"
		;;
	esac
else
	DEBUGSTRING=""
fi


# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* < /dev/stdin
RETVAL=$?

if [ -f $TMP_FILE ]; then
	rm -f $TMP_FILE;
fi

if [[ $RETVAL -eq 0 ]]; then
	# what termination are we using?
	TERMINATION=`grep '^[[:space:]]*#[[:space:]]*TERMINATION=' ./mf.cfg | sed 's/^[[:space:]]*#[[:space:]]*TERMINATION=//;'`
	if [ -n $TERMINATION ]; then
		echo -n -e $TERMINATION;
	fi
fi

exit $RETVAL
