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: //' | tr A-Z a-z
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 *)
56 qiv "$@"
57 ;;
58 esac
59 ;;
60 esac
61 }
63 case $# in
64 0)
65 tmp=/var/tmp/page.$$.tmp
66 cat >$tmp
67 type=`xfile $tmp`
68 case "$type" in
69 *troff*)
70 mv $tmp $tmp.tr
71 tmp=$tmp.tr
72 ;;
73 *pdf*)
74 mv $tmp $tmp.pdf
75 tmp=$tmp.pdf
76 ;;
77 *gif*)
78 mv $tmp $tmp.gif
79 tmp=$tmp.gif
80 ;;
81 *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*)
94 mv $tmp $tmp.ps
95 tmp=$tmp.ps
96 ;;
97 *postscript*)
98 mv $tmp $tmp.ps
99 tmp=$tmp.ps
100 ;;
101 *ps*)
102 mv $tmp $tmp.ps
103 tmp=$tmp.ps
104 ;;
105 *)
106 echo 1>&2 page: unrecognized file type on standard input: $type
107 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 "$@"
118 ;;
119 esac