#!/bin/sh

# BUG - Should clean up $tmp but how to know when viewer is done?

preview()
{
	list=""
	pwd=`pwd`
	for i in "$@"
	do
		if [ -n "$list" ]
		then
			list="$list, "
		fi
		n=`cleanname -d $pwd $i | sed 's!/!:!g'`
		list="$list\"$n\""
	done
	# echo run $list
	echo 'tell application "Preview"
		activate
		open {'"$list"'}
	end tell' | osascript
}

xfile()
{
	if sed 1q "$1" | 9 grep '^x T '
	then
		echo 'troff intermediate output'
	else
		9 file < "$1" | sed 's/stdin: //'
	fi
}

main()
{
	case `uname` in
	Darwin)
		preview "$@"
		;;
	*)
		case "`xfile $1`" in
		*troff*)
			tr2post "$1" | psfonts | page
			;;
		*PDF*)
			psv $1
			;;
		*PS*)
			psv $1
			;;
		*postscript*)
			psv $1
			;;
		*PostScript*)
			psv $1
			;;
		*)
			qiv "$@"
			;;
		esac
		;;
	esac
}
	
case $# in
0)
	tmp=/var/tmp/page.$$.tmp
	cat >$tmp
	type=`xfile $tmp`
	case "$type" in
	*troff*)
		mv $tmp $tmp.tr
		tmp=$tmp.tr
		;;
	*PDF*)
		mv $tmp $tmp.pdf
		tmp=$tmp.pdf
		;;
	*PS*)
		mv $tmp $tmp.ps
		tmp=$tmp.ps
		;;
	*PostScript*)
		mv $tmp $tmp.ps
		tmp=$tmp.ps
		;;
	*postscript*)
		mv $tmp $tmp.ps
		tmp=$tmp.ps
		;;
	*GIF*)
		mv $tmp $tmp.gif
		tmp=$tmp.gif
		;;
	*JPG*)
		mv $tmp $tmp.jpg
		tmp=$tmp.jpg
		;;
	*JPEG*)
		mv $tmp $tmp.jpg
		tmp=$tmp.jpg
		;;
	*PNG*)
		mv $tmp $tmp.png
		tmp=$tmp.png
		;;
	*)
		echo 1>&2 page: unrecognized file type on standard input: $type
		rm -f $tmp
		exit 1
	esac
	main $tmp
	if [ `uname` != Darwin ]
	then
		rm -f $tmp
	fi
	;;
*)
	main "$@"
	;;
esac

