Skip to content

Instantly share code, notes, and snippets.

@ap
Created April 13, 2009 04:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ap/94251 to your computer and use it in GitHub Desktop.
Save ap/94251 to your computer and use it in GitHub Desktop.
Broken dvipdft fix (failed trying to mkdir tempdir that it had already created)
--- /usr/share/texmf/bin/dvipdft 2007-06-28 04:50:14.000000000 +0200
+++ dvipdft 2009-04-13 06:13:05.000000000 +0200
@@ -31,7 +31,14 @@
$progname --help
$progname --version"
-tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX`
+# before we create the tmpdir, set trap for cleanup
+trap 'rm -rf $tmpdir ; exit 1' 1 2 3 7 13 15
+trap 'rm -rf $tmpdir' 0
+
+tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || {
+ echo "$progname: failed to create temp directory." >&2
+ exit 1
+}
quoteit()
{
@@ -85,24 +92,12 @@
exit 1
}
-# before we create the tmpdir, set trap for cleanup
-trap '
- rm -rf $tmpdir
- exit 1
-' 1 2 3 7 13 15
-
-mkdir "$tmpdir" || {
- echo "$progname: failed to create temp directory." >&2
- exit 1
-}
-
# if outBase contains a /, we might need to create a directory
case $outBase in
*/*)
fq=`echo "$tmpdir/$outBase" | sed 's@//@/@g; s@/[^/]*$@@'`
test -d "$fq" || mkdir -p "$fq" || {
echo "$progname: failed to create temp thumbnail directory." >&2
- rm -rf $tmpdir
exit 1
}
;;
@@ -113,7 +108,6 @@
gs -r10 -dNOPAUSE -dBATCH -sDEVICE=png256 \
-sOutputFile="$tmpdir/$outBase.%d" "$outfile" || {
echo "$progname: gs failed." >&2
- rm -rf $tmpdir
exit 1
}
@@ -121,10 +115,8 @@
echo "$progname: running dvipdfm -dt $@ $dvifile" >&2
TMP=$tmpdir dvipdfm -dt "$@" "$dvifile" || {
echo "$progname: dvipdfm failed." >&2
- rm -rf $tmpdir
exit 1
}
# nothing failed, so cleanup and report success to caller
-rm -rf $tmpdir
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment