5 CACHEDIR
=$HOME/.config
/llpp
11 printf "$fmt\n" "$*" >&2
15 trap '! test -z $casp && rm -f $casp' 0
17 test -d $CACHEDIR || die
"cache directory %s does not exist" $CACHEDIR
18 test -z "$1" && die
"usage %s: path" $0
20 ft
=$
(file --mime-type -b "$1")
23 application
/x-gzip
) dc=zcat
;;
24 application
/x-xz
) dc=xzcat
;;
25 application
/x-bzip2
) dc=bzcat
;;
29 test -z $dc || ft
=$
(file --mime-type -bz "$1")
32 application
/postscript
) conv
='ps2pdf $1 $casp';;
34 test -z $dc && exec llpp
"$1" || conv
='cat >$casp'
36 application
/msword
) conv
='antiword -p a4 $1 | ps2pdf - $casp';;
37 image
/vnd.djvu
) conv
='djvups $1 | ps2pdf - $casp';;
38 image
/svg
+xml
) conv
='inkscape -z -A $casp $1';;
40 test -z $dc || die
"can not handle compressed DVIs";
41 conv
='dvipdf $1 $casp'
43 *) die
"unhandled file type: %s" $ft;;
46 hash=$
(md5sum "$1" | cut
-f 1 -d\
)
48 casp
="$CACHEDIR/$hash"
50 if ! test -e $casp; then
51 test -z $dc && cmd
="$conv" || cmd
="$dc \"$1\" | $conv"
54 exec llpp
-origin "$1" $casp