[skip ci] Update format script to enforce clang-format version, and work on OSX

This commit is contained in:
Daniel Patterson 2016-07-20 21:10:07 +02:00 committed by Patrick Niklaus
parent f76e3d4522
commit aebf6fa0b1
No known key found for this signature in database
GPG Key ID: E426891B5F978B1B

View File

@ -7,8 +7,33 @@
set -eu -o pipefail set -eu -o pipefail
# Get CPU count
OS=$(uname)
NPROC=1
if [[ $OS = "Linux" ]] ; then
NPROC=$(nproc)
elif [[ ${OS} = "Darwin" ]] ; then
NPROC=$(sysctl -n hw.physicalcpu)
fi
# Discover clang-format
if type clang-format-3.8 2> /dev/null ; then
CLANG_FORMAT=clang-format-3.8
elif type clang-format 2> /dev/null ; then
# Clang format found, but need to check version
CLANG_FORMAT=clang-format
V=$(clang-format --version)
if [[ $V != *3.8* ]] ; then
echo "clang-format is not 3.8 (returned ${V})"
exit 1
fi
else
echo "No appropriate clang-format found (expected clang-format-3.8, or clang-format)"
exit 1
fi
find src include unit_tests example -type f -name '*.hpp' -o -name '*.cpp' \ find src include unit_tests example -type f -name '*.hpp' -o -name '*.cpp' \
| xargs -I{} -P $(nproc) clang-format -i -style=file {} | xargs -I{} -P ${NPROC} ${CLANG_FORMAT} -i -style=file {}
dirty=$(git ls-files --modified) dirty=$(git ls-files --modified)