diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/check-format | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/check-format b/tools/check-format new file mode 100755 index 0000000..414ddc4 --- /dev/null +++ b/tools/check-format @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Pretty fancy method to get reliable the absolute path of a shell +# script, *even if it is sourced*. Credits go to GreenFox on +# stackoverflow: http://stackoverflow.com/a/12197518/194894 +pushd . > /dev/null +SCRIPTDIR="${BASH_SOURCE[0]}"; +while([ -h "${SCRIPTDIR}" ]); do + cd "`dirname "${SCRIPTDIR}"`" + SCRIPTDIR="$(readlink "`basename "${SCRIPTDIR}"`")"; +done +cd "`dirname "${SCRIPTDIR}"`" > /dev/null +SCRIPTDIR="`pwd`"; +popd > /dev/null + +ROOTDIR=$(readlink -f "${SCRIPTDIR}/..") + +MAX_PROCS=$(nproc) + +# Note that the --dry-run and --Werror clang-format arguments require +# clang-format 10 or higher. See https://reviews.llvm.org/D68554 +find "${ROOTDIR}" -path "${ROOTDIR}/build*" -prune -o \ + -type f -name '*.[c|h|cpp]' -print0 |\ + xargs --null --max-args=3 --max-procs="${MAX_PROCS}" \ + clang-format --style=file --dry-run -Werror |
