Skip to content

Commit

Permalink
hook: Use clang-format with highest version
Browse files Browse the repository at this point in the history
  • Loading branch information
FintasticMan committed Mar 4, 2023
1 parent 4385c88 commit a3ec514
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions hooks/pre-commit
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
#!/bin/sh

changedFiles="$(git clang-format --extensions cpp,h --style file --staged -q --diffstat -- ':!src/FreeRTOS' ':!src/libs')"
git clang-format --extensions cpp,h --style file --staged -q -- ':!src/FreeRTOS' ':!src/libs'
minVersion="14.0.0"

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

changedFiles="$(git "$name" --extensions cpp,h --style file --staged -q --diffstat -- ':!src/FreeRTOS' ':!src/libs')"
git "$name" --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
git add -- "$file"
Expand Down

0 comments on commit a3ec514

Please sign in to comment.