#!/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