#!/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: //' | tr A-Z a-z
	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
			;;
		*)
			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
		;;
	*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
		;;
	*postscript*)
		mv $tmp $tmp.ps
		tmp=$tmp.ps
		;;
	*postscript*)
		mv $tmp $tmp.ps
		tmp=$tmp.ps
		;;
	*ps*)
		mv $tmp $tmp.ps
		tmp=$tmp.ps
		;;
	*)
		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

