aboutsummaryrefslogtreecommitdiff
path: root/tests/manifest-parser/driver
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manifest-parser/driver')
-rwxr-xr-xtests/manifest-parser/driver31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/manifest-parser/driver b/tests/manifest-parser/driver
new file mode 100755
index 0000000..4cbea3e
--- /dev/null
+++ b/tests/manifest-parser/driver
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+function import ()
+{
+ # Here we don't assume the errors are trapped. If all goes well, our exit
+ # code is that of source (which fails if the file is not found).
+ #
+ local e; if ! e="$(realpath ${BASH_SOURCE[0]})"; then return 1; fi
+ local d; if ! d="$(dirname "$e")"; then return 1; fi
+ source "$d/$1.bash"
+}
+
+trap "{ exit 1; }" ERR
+set -o errtrace # Trap ERR in functions.
+
+import libbutl/manifest-parser
+
+# @@ parse_manifest failure ignored
+#
+# @@ what would be equivalent serialization interface? Just serialize one
+# name/value in manifest format (so explicit version).
+#
+while IFS=': ' read -r -d '' n v; do
+ if [ -z "$n" ]; then
+ echo "$v"
+ else
+ echo # Extra newline after first pair.
+ echo "$n"
+ echo "$v"
+ fi
+done < <(parse_manifest)