hook: Use clang-format with highest version
This commit is contained in:
parent
ab8e267e28
commit
c634a4e3b4
|
@ -1,8 +1,27 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
changedFiles="$(git clang-format --extensions cpp,h --style file --staged -q --diffstat -- ':!src/FreeRTOS' ':!src/libs')"
|
minVersion="14.0.0"
|
||||||
git clang-format --extensions cpp,h --style file --staged -q -- ':!src/FreeRTOS' ':!src/libs'
|
|
||||||
|
|
||||||
echo "$changedFiles" | head -n -1 | cut -d ' ' -f 1 | while read -r file; do
|
for file in $(find $(echo "$PATH" | tr ':' ' ') -maxdepth 1 -type f -executable -name 'git-clang-format*'); do
|
||||||
|
curName="$(basename "$file" | sed 's/^git-//')"
|
||||||
|
curVersion="$("$curName" --version | cut -d ' ' -f 3)"
|
||||||
|
|
||||||
|
if [ "$(printf '%s\n' "$curVersion" "$version" "$minVersion" | sort -V | tail -n 1)" = "$curVersion" ]; then
|
||||||
|
name="$curName"
|
||||||
|
version="$curVersion"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$name" ]; then
|
||||||
|
echo "Could not find a suitable clang-format installation. Install clang-format that includes the git-clang-format script, with at least version $minVersion"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
args='-q --extensions cpp,h --style file --staged -- :!src/FreeRTOS :!src/libs'
|
||||||
|
|
||||||
|
changedFiles="$(git "$name" --diffstat $args)"
|
||||||
|
git "$name" $args
|
||||||
|
|
||||||
|
echo "$changedFiles" | head -n -1 | cut -d ' ' -f 2 | while read -r file; do
|
||||||
git add -- "$file"
|
git add -- "$file"
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in a new issue