blob: dc177f2266b983bdd085ae528774571419e59055 [file] [log] [blame]
rsc5645c4a2005-01-11 19:23:52 +00001#!/bin/sh
2
rscacb19302005-01-11 19:35:27 +00003# BUG - Should clean up $tmp but how to know when viewer is done?
4
rsc5645c4a2005-01-11 19:23:52 +00005preview()
6{
7 list=""
8 pwd=`pwd`
9 for i in "$@"
10 do
11 if [ -n "$list" ]
12 then
13 list="$list, "
14 fi
15 n=`cleanname -d $pwd $i | sed 's!/!:!g'`
16 list="$list\"$n\""
17 done
18 # echo run $list
19 echo 'tell application "Preview"
20 activate
21 open {'"$list"'}
22 end tell' | osascript
23}
24
rsc72208f32005-07-18 22:50:09 +000025xfile()
26{
27 if sed 1q "$1" | 9 grep '^x T '
28 then
29 echo 'troff intermediate output'
30 else
rscf65cd0d2005-12-29 22:37:34 +000031 9 file < "$1" | sed 's/stdin: //' | tr A-Z a-z
rsc72208f32005-07-18 22:50:09 +000032 fi
33}
34
rscacb19302005-01-11 19:35:27 +000035main()
36{
37 case `uname` in
38 Darwin)
39 preview "$@"
rsc5645c4a2005-01-11 19:23:52 +000040 ;;
41 *)
rsc72208f32005-07-18 22:50:09 +000042 case "`xfile $1`" in
43 *troff*)
44 tr2post "$1" | psfonts | page
45 ;;
rscf65cd0d2005-12-29 22:37:34 +000046 *pdf*)
rscacb19302005-01-11 19:35:27 +000047 psv $1
48 ;;
rscf65cd0d2005-12-29 22:37:34 +000049 *ps*)
rscacb19302005-01-11 19:35:27 +000050 psv $1
51 ;;
rsc5dde0bb2005-10-19 03:26:45 +000052 *postscript*)
53 psv $1
54 ;;
rscacb19302005-01-11 19:35:27 +000055 *)
56 qiv "$@"
57 ;;
58 esac
rsc5645c4a2005-01-11 19:23:52 +000059 ;;
60 esac
rscacb19302005-01-11 19:35:27 +000061}
62
63case $# in
640)
65 tmp=/var/tmp/page.$$.tmp
66 cat >$tmp
rsc5dde0bb2005-10-19 03:26:45 +000067 type=`xfile $tmp`
68 case "$type" in
rsc72208f32005-07-18 22:50:09 +000069 *troff*)
70 mv $tmp $tmp.tr
71 tmp=$tmp.tr
72 ;;
rscf65cd0d2005-12-29 22:37:34 +000073 *pdf*)
rscacb19302005-01-11 19:35:27 +000074 mv $tmp $tmp.pdf
75 tmp=$tmp.pdf
76 ;;
rscf65cd0d2005-12-29 22:37:34 +000077 *gif*)
78 mv $tmp $tmp.gif
79 tmp=$tmp.gif
rscacb19302005-01-11 19:35:27 +000080 ;;
rscf65cd0d2005-12-29 22:37:34 +000081 *jpg*)
82 mv $tmp $tmp.jpg
83 tmp=$tmp.jpg
84 ;;
85 *jpeg*)
86 mv $tmp $tmp.jpg
87 tmp=$tmp.jpg
88 ;;
89 *png*)
90 mv $tmp $tmp.png
91 tmp=$tmp.png
92 ;;
93 *postscript*)
rscacb19302005-01-11 19:35:27 +000094 mv $tmp $tmp.ps
95 tmp=$tmp.ps
96 ;;
rsc5dde0bb2005-10-19 03:26:45 +000097 *postscript*)
98 mv $tmp $tmp.ps
99 tmp=$tmp.ps
100 ;;
rscf65cd0d2005-12-29 22:37:34 +0000101 *ps*)
102 mv $tmp $tmp.ps
103 tmp=$tmp.ps
rscacb19302005-01-11 19:35:27 +0000104 ;;
105 *)
rsc5dde0bb2005-10-19 03:26:45 +0000106 echo 1>&2 page: unrecognized file type on standard input: $type
rscacb19302005-01-11 19:35:27 +0000107 rm -f $tmp
108 exit 1
109 esac
110 main $tmp
111 if [ `uname` != Darwin ]
112 then
113 rm -f $tmp
114 fi
115 ;;
116*)
117 main "$@"
rsc5645c4a2005-01-11 19:23:52 +0000118 ;;
119esac
120