Blob


1 #!/bin/sh
3 # BUG - Should clean up $tmp but how to know when viewer is done?
5 preview()
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 }
25 xfile()
26 {
27 if sed 1q "$1" | 9 grep '^x T '
28 then
29 echo 'troff intermediate output'
30 else
31 9 file < "$1" | sed 's/stdin: //'
32 fi
33 }
35 main()
36 {
37 case `uname` in
38 Darwin)
39 preview "$@"
40 ;;
41 *)
42 case "`xfile $1`" in
43 *troff*)
44 tr2post "$1" | psfonts | page
45 ;;
46 *PDF*)
47 psv $1
48 ;;
49 *PS*)
50 psv $1
51 ;;
52 *postscript*)
53 psv $1
54 ;;
55 *PostScript*)
56 psv $1
57 ;;
58 *)
59 qiv "$@"
60 ;;
61 esac
62 ;;
63 esac
64 }
66 case $# in
67 0)
68 tmp=/var/tmp/page.$$.tmp
69 cat >$tmp
70 type=`xfile $tmp`
71 case "$type" in
72 *troff*)
73 mv $tmp $tmp.tr
74 tmp=$tmp.tr
75 ;;
76 *PDF*)
77 mv $tmp $tmp.pdf
78 tmp=$tmp.pdf
79 ;;
80 *PS*)
81 mv $tmp $tmp.ps
82 tmp=$tmp.ps
83 ;;
84 *PostScript*)
85 mv $tmp $tmp.ps
86 tmp=$tmp.ps
87 ;;
88 *postscript*)
89 mv $tmp $tmp.ps
90 tmp=$tmp.ps
91 ;;
92 *GIF*)
93 mv $tmp $tmp.gif
94 tmp=$tmp.gif
95 ;;
96 *JPG*)
97 mv $tmp $tmp.jpg
98 tmp=$tmp.jpg
99 ;;
100 *JPEG*)
101 mv $tmp $tmp.jpg
102 tmp=$tmp.jpg
103 ;;
104 *PNG*)
105 mv $tmp $tmp.png
106 tmp=$tmp.png
107 ;;
108 *)
109 echo 1>&2 page: unrecognized file type on standard input: $type
110 rm -f $tmp
111 exit 1
112 esac
113 main $tmp
114 if [ `uname` != Darwin ]
115 then
116 rm -f $tmp
117 fi
118 ;;
119 *)
120 main "$@"
121 ;;
122 esac