More experimentation with the dependency logging features of cpp and xsltproc.
[mgear/mgear.git] / experiments / dep-logging / sip
diff --git a/experiments/dep-logging/sip b/experiments/dep-logging/sip
new file mode 100755 (executable)
index 0000000..43735ec
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+# Simple include processor as an example of a dependency-logging command.
+# sip input output depoutput
+# Follows `include foo' at the beginning of a line.
+
+exec 3>"$3"
+exec >"$2"
+
+function do_read {
+       echo "$1" >&3
+       [ -r "$1" ] || exit 1
+       while IFS='' read line; do
+               if [[ "$line" == "include "* ]]; then
+                       do_read "${line#include }"
+               else
+                       echo "$line"
+               fi
+       done <"$1"
+}
+
+do_read "$1"