#!/bin/bash
# Simple shell script to try and do the right thing when printing files.
# Peter MacDonald
if [ $# = 0 ]; then
	exit -1;
fi
TMPFILE="/tmp/print$$"
OUTDEVICE=lpr
PDIR=`pwd`
PRINTERTYPE="hp"
case $1 in
	'-t')	EXT=$2; shift 2;;
	'-p')	PRINTERTYPE=$2; shift 2;;
	'-o')	OUTDEVICE=$2; shift 2;;

esac
FNAME=$1
LNAME=${FNAME:+`basename $FNAME`};
if [ "" != "$LNAME" ]; then
	for i in .tex .dvi .lj .1 .2 .3 .4 .5 .6 .7 .8 .9 .n .l; do
		if [ "$LNAME" != "`basename $LNAME $i`" ]; then
			EXT=$i
		fi
	done
fi
if [ "$PRINTERTYPE" = "ps" ]; then
	case $EXT in
		.dvi)
			cat $FNAME > $TMPFILE && dvips -f $TMPFILE | $OUTDEVICE;
			rm $TMPFILE;;
		.tex)
			latex $FNAME && dvips -f <`basename $FNAME .tex`.dvi > $OUTDEVICE;;
		.[1-9nl])
			cat $FNAME | nroff -mandoc -T ps | $OUTPUTDEVICE
			rm $TMPFILE.dvi;;
		*)
			cat $FNAME | $OUTDEVICE
	esac
elif [ "$PRINTERTYPE" = "hp" ]; then
	case $EXT in
		.dvi)
			dvilj2p -e- $FNAME | $OUTDEVICE;;
		.lj)
			cat $FNAME | $OUTDEVICE;;
		.tex)
			latex $FNAME && dvilj2p -e- `basename $FNAME .tex` | $OUTDEVICE;;
		.[1-9nl])
			cat $FNAME | nroff -mandoc -T dvi > $TMPFILE.dvi && \
				dvilj2p -e- $TMPFILE.dvi > $OUTDEVICE;
			rm $TMPFILE.dvi;;
		*)
			cat $FNAME | sed 's/$/
/' | $OUTDEVICE
	esac
else
	cat $FNAME | sed 's/$/
/' | $OUTDEVICE
fi
