more fun with macs
diff --git a/bin/page b/bin/page
index 2899760..d654a7e 100755
--- a/bin/page
+++ b/bin/page
@@ -1,5 +1,7 @@
#!/bin/sh
+# BUG - Should clean up $tmp but how to know when viewer is done?
+
preview()
{
list=""
@@ -20,34 +22,77 @@
end tell' | osascript
}
-case $# in
-0)
- cat >/var/tmp/page.$$.tmp
- *="/var/tmp/page.$$.tmp"
- ;;
-*)
- ;;
-esac
-
-case `uname` in
-Darwin)
- preview "$@"
- ;;
-*)
- case "`file $1`" in
- *PDF*)
- psv $1
- ;;
- *PS*)
- psv $1
- ;;
- *PostScript*)
- psv $1
+main()
+{
+ case `uname` in
+ Darwin)
+ preview "$@"
;;
*)
- qiv "$@"
+ case "`file $1`" in
+ *PDF*)
+ psv $1
+ ;;
+ *PS*)
+ psv $1
+ ;;
+ *PostScript*)
+ psv $1
+ ;;
+ *)
+ qiv "$@"
+ ;;
+ esac
;;
esac
+}
+
+case $# in
+0)
+ tmp=/var/tmp/page.$$.tmp
+ cat >$tmp
+ case "`file $tmp`" in
+ *PDF*)
+ mv $tmp $tmp.pdf
+ tmp=$tmp.pdf
+ ;;
+ *PS*)
+ 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 unrecognized file format
+ rm -f $tmp
+ exit 1
+ esac
+ main $tmp
+ if [ `uname` != Darwin ]
+ then
+ rm -f $tmp
+ fi
+ ;;
+*)
+ main "$@"
;;
esac