summaryrefslogtreecommitdiffstats
path: root/bin/json-assert-type
diff options
context:
space:
mode:
authortv <tv@shackspace.de>2015-05-21 01:56:08 +0200
committertv <tv@shackspace.de>2015-05-21 01:56:08 +0200
commit36670f3e1cccad579b994a29320eeb8e287803b7 (patch)
tree484cb2c1075cdcabe8020ca40704f4d68f2b2fed /bin/json-assert-type
parentb95a514bcced00af77ae4adab77326dba9ab4c36 (diff)
sh: functions -> bin/
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 000000000..29cadad65
--- /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"