forked from haiwan/sledge
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.2 KiB
31 lines
1.2 KiB
#!/bin/bash
|
|
|
|
utility="clang-format"
|
|
utility_version="$("$utility" --version 2>/dev/null)" || {
|
|
echo "$utility not found in path!"
|
|
exit 1
|
|
}
|
|
|
|
regex="version ([0-9]+).([0-9]+).([0-9]+)"
|
|
declare -i major=0
|
|
declare -i minor=0
|
|
declare -i patch=0
|
|
declare -i required_major=9
|
|
declare -i required_minor=0
|
|
declare -i required_patch=0
|
|
|
|
if [[ "$utility_version" =~ $regex ]]; then
|
|
major="${BASH_REMATCH[1]}"
|
|
minor="${BASH_REMATCH[2]}"
|
|
patch="${BASH_REMATCH[3]}"
|
|
fi
|
|
|
|
if ((major < required_major)) || ((minor < required_minor)) || ((patch < required_patch)); then
|
|
echo "$utility $required_major.$required_minor.$required_patch required, but is $major.$minor.$patch"
|
|
exit 1
|
|
fi
|
|
|
|
find ./runtime -type f -path "./*.[ch]" | # Match all *.c and *.h files in ./runtime
|
|
grep --invert-match -E "./runtime/thirdparty/*|./runtime/tests/gocr/*|./runtime/tests/TinyEKF/*|./runtime/tests/CMSIS_5_NN/*|./runtime/tests/sod/*" | # Excluding those in the jsmn or http-parser submodules
|
|
xargs clang-format -i # And format them with clang-format
|