mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-29 03:19:44 +00:00
Simplify script to check clang-format
* Check only files from the git repository * Support paths with spaces * Do check in parallel
This commit is contained in:
parent
d2d1036d26
commit
a46d61c45c
@ -1,33 +1,10 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -ex
|
||||
|
||||
set -o pipefail
|
||||
|
||||
CLANG_FORMAT="${CLANG_FORMAT:-clang-format}"
|
||||
HAS_DIFFS=0
|
||||
|
||||
check_format_file() {
|
||||
local item=$1
|
||||
"$CLANG_FORMAT" --dry-run -Werror "$item" &>/dev/null
|
||||
if [[ $? = 1 ]]; then
|
||||
"${CLANG_FORMAT}" "${item}" | git diff --color=always --no-index "${item}" -
|
||||
HAS_DIFFS=1
|
||||
fi
|
||||
}
|
||||
|
||||
check_format() {
|
||||
local path=$1
|
||||
find "$path" -type f -name "*" | while read item;
|
||||
do
|
||||
if [[ "$item" =~ .*\.(cpp|hpp|h) ]]; then
|
||||
check_format_file "$item"
|
||||
fi;
|
||||
done;
|
||||
}
|
||||
|
||||
check_format "./apps"
|
||||
check_format "./components"
|
||||
|
||||
if [[ $HAS_DIFFS -eq 1 ]]; then
|
||||
echo "clang-format differences detected"
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
exit 0
|
||||
git ls-files |
|
||||
grep -v '^extern/' |
|
||||
grep -P '\.(cpp|hpp|h)$' |
|
||||
xargs -I '{}' -P $(nproc) bash -ec "\"${CLANG_FORMAT:?}\" --dry-run -Werror \"\${0:?}\" &> /dev/null || \"${CLANG_FORMAT:?}\" \"\${0:?}\" | git diff --color=always --no-index \"\${0:?}\" -" '{}' ||
|
||||
( echo "clang-format differences detected"; exit -1 )
|
||||
|
Loading…
Reference in New Issue
Block a user