summaryrefslogtreecommitdiffstats
path: root/bin/json-assert-type
diff options
context:
space:
mode:
Diffstat (limited to 'bin/json-assert-type')
-rwxr-xr-xbin/json-assert-type18
1 files changed, 18 insertions, 0 deletions
diff --git a/bin/json-assert-type b/bin/json-assert-type
new file mode 100755
index 00000000..29cadad6
--- /dev/null
+++ b/bin/json-assert-type
@@ -0,0 +1,18 @@
+#! /bin/sh
+set -euf
+
+formal_type=$1
+
+actual_value=$2
+actual_type=$(echo $actual_value | jq -r type)
+
+if [ "$actual_type" != "$formal_type" ]; then
+ backtrace
+ printf 'error: expected %s, got %s\n' \
+ "$formal_type" \
+ "$actual_type" \
+ >&2
+ exit 1
+fi
+
+echo "$actual_value"