aboutsummaryrefslogtreecommitdiff
path: root/aux/assert-clang-format.sh
diff options
context:
space:
mode:
Diffstat (limited to 'aux/assert-clang-format.sh')
-rwxr-xr-xaux/assert-clang-format.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/aux/assert-clang-format.sh b/aux/assert-clang-format.sh
new file mode 100755
index 0000000..c7ee6d7
--- /dev/null
+++ b/aux/assert-clang-format.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -eu
+
+if [ "${1:-}" = '--fix-in-place' ]; then
+ find . -type f \( -name '*.h' -o -name '*.c' \) -exec clang-format -i {} \;
+ exit 0
+fi
+
+# shellcheck disable=2016
+find . -type f \( -name '*.h' -o -name '*.c' \) -print0 | xargs -0 -I{} sh -c '
+ clang-format "$1" | diff - "$1" || {
+ echo "Unformatted C code. To fix it, run:"
+ echo " ./aux/assert-clang-format.sh --fix-in-place"
+ exit 1
+ }
+' _ {} \;