#! /bin/sh
#
# $NetBSD: setpapersize,v 1.4 2000/07/11 10:06:41 agc Exp $
#
# Small shell script to set the default papersize for packages
#

# Make sure we've been given an argument
if [ $# -lt 1 ]; then
	echo "Usage: setpapersize papersize"
	exit 1
fi

papersize=$1
shift 1

# Make sure the argument is valid.
case $papersize in
a4|A4)
	papersize=A4
	dimensions="210mm x 297mm"
	;;
letter|letterdj)
	papersize=`echo $papersize|sed -e 's|^.|L|'`
	dimensions='8.5" x 11"'
	;;
Letter|Letterdj)
	dimensions='8.5" x 11"'
	;;
*)
	echo "Invalid paper size: $papersize"
	echo "It should be one of: A4, Letter or Letterdj"
	exit 1
	;;
esac

lowpaper=`echo $papersize | tr '[A-Z]' '[a-z]'`

if [ $# -eq 0 ]; then
	pkgs="a2ps ddd enscript magicfilter psutils";
else 
	pkgs=$@
fi

set $pkgs
while [ $# -gt 0 ]; do
	case $1 in
	a2ps)
		a2psfile=@localbase@/etc/a2ps-site.cfg
		if [ -e $a2psfile ]; then
			mv $a2psfile $a2psfile.old
			sed -e 's|^Options: --medium=.*|Options: --medium='$papersize'|' $a2psfile.old > $a2psfile && rm $a2psfile.old
			echo "Set $1 package default paper size to $papersize in $a2psfile"
		fi
		;;
	ddd)
		dddfile=@x11prefix@/lib/X11/app-defaults/Ddd
		if [ -e $dddfile ]; then
			mv $dddfile $dddfile.old
			sed -e 's|@Ddd@\*paperSize:.*|@Ddd@*paperSize: '$dimensions'|' $dddfile.old > $dddfile && rm $dddfile.old
			echo "Set $1 package default paper size to $papersize in $dddfile"
		fi
		;;
	enscript)
		enscriptfile=@localbase@/etc/enscript.cfg
		if [ -e $enscriptfile ]; then
			mv $enscriptfile $enscriptfile.old
			sed -e 's|^DefaultMedia:.*|DefaultMedia: '$papersize'|' $enscriptfile.old > $enscriptfile && rm $enscriptfile.old
			echo "Set $1 package default paper size to $papersize in $enscriptfile"
		fi
		;;
	magicfilter)
		magicdir=@localbase@/libexec/magicfilter
		if [ -e $magicdir ]; then
			for f in $magicdir/*-filter; do
				mv $f $f.old
				sed -e 's|-sPAPERSIZE=[a-zA-Z0-9_]*|-sPAPERSIZE='$lowpaper'|' $f.old > $f && rm $f.old
				chmod 555 $f
			done
			echo "Set $1 package default paper size to $papersize in $magicdir/*-filter"
		fi
		;;
	psutils)
		psutilsfile=@localbase@/etc/psutils.cfg
		if [ -e $psutilsfile ]; then
			mv $psutilsfile $psutilsfile.old
			sed -e 's|^PAPERSIZE.*|PAPERSIZE='$lowpaper'|' $psutilsfile.old > $psutilsfile && rm $psutilsfile.old
			echo "Set $1 package default paper size to $papersize in $psutilsfile"
		fi
		;;
	*)
		echo "Warning: Package $1 not recognised"
		;;
	esac
	shift 1
done

exit 0