Add xsltdepcomp and makedepfile.
[utils/utils.git] / xsltdepcomp
diff --git a/xsltdepcomp b/xsltdepcomp
new file mode 100755 (executable)
index 0000000..2c8481e
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+# Invoke as xsltdepcomp <out-file> <dep-file> <xsltproc-args>
+set -e
+
+outfile="$1"
+depfile="$2"
+shift 2
+
+set -o pipefail
+trap 'rm -f $depfile.tmp' EXIT
+
+xsltproc --load-trace "$@" 2>&1 >"$outfile" \
+| sed -f /dev/fd/3 3<<EOF | makedepfile "$outfile" >"$depfile.tmp" \
+&& mv "$depfile.tmp" "$depfile"
+s/^Loaded URL="\(.*\)" ID=".*"$/\1/
+td
+w /dev/stderr
+/^warning: failed to load external entity / q 6
+d
+:d
+EOF