Add xsltdepcomp and makedepfile.
authorMatt McCutchen <matt@mattmccutchen.net>
Wed, 2 Sep 2020 21:59:36 +0000 (17:59 -0400)
committerMatt McCutchen <matt@mattmccutchen.net>
Wed, 2 Sep 2020 21:59:36 +0000 (17:59 -0400)
makedepfile [new file with mode: 0755]
xsltdepcomp [new file with mode: 0755]

diff --git a/makedepfile b/makedepfile
new file mode 100755 (executable)
index 0000000..edb1f34
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+# Generates a `make' dependency snippet. -- Matt
+# Call as: makedepfile target(s) <prerequisites-one-per-line
+
+escaperegex='s/ /\\ /g; s/\$/\$\$/g'
+
+while [ $# != 0 ]; do
+       echo -n "$(sed -e "$escaperegex" <<<"$1") "
+       shift
+done
+echo ': \'
+
+escapedprereqs=$(sed -e "$escaperegex")
+
+sed -e 's/$/ \\/' <<<"$escapedprereqs"
+echo
+sed -e 's/$/ :/' <<<"$escapedprereqs"
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