Fix git hook

This commit is contained in:
Sergey Kuznetsov
2023-11-29 15:09:56 +00:00
committed by Sergey Kuznetsov
parent 24c562fa2a
commit 9ef6801c55
2 changed files with 16 additions and 8 deletions

View File

@@ -12,7 +12,7 @@ if [[ "17.0.0" > "$version" ]]; then
ERROR
-----------------------------------------------------------------------------
A minimum of version 16 of `clang-format` is required.
A minimum of version 17 of `clang-format` is required.
Your version is $version.
Please fix paths and run again.
-----------------------------------------------------------------------------
@@ -25,13 +25,21 @@ function grep_code {
grep -l "${1}" ${sources} -r --include \*.h --include \*.cpp
}
# make all includes to be <...> style
grep_code '#include ".*"' | xargs sed -i -E 's|#include "(.*)"|#include <\1>|g'
if [[ "$OSTYPE" == "darwin"* ]]; then
# make all includes to be <...> style
grep_code '#include ".*"' | xargs sed -i '' -E 's|#include "(.*)"|#include <\1>|g'
# make local includes to be "..." style
for d in $(find ./src -maxdepth 1 -type d -execdir basename {} \;); do
grep_code "#include <$d/.*>" | xargs sed -i -E "s|#include <($d/.*)>|#include \"\1\"|g"
done
# make local includes to be "..." style
main_src_dirs=$(find ./src -type d -d 1 -exec basename {} \; | paste -sd '|' | sed 's/|/\\|/g')
grep_code "#include <\($main_src_dirs\)/.*>" | xargs sed -i '' -E "s|#include <(($main_src_dirs)/.*)>|#include \"\1\"|g"
else
# make all includes to be <...> style
grep_code '#include ".*"' | xargs sed -i -E 's|#include "(.*)"|#include <\1>|g'
# make local includes to be "..." style
main_src_dirs=$(find ./src -type d -d 1 -exec basename {} \; | paste -sd '|' | sed 's/|/\\|/g')
grep_code "#include <\($main_src_dirs\)/.*>" | xargs sed -i -E "s|#include <(($main_src_dirs)/.*)>|#include \"\1\"|g"
fi
first=$(git diff $sources)
find $sources -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.ipp' \) -print0 | xargs -0 $formatter

View File

@@ -17,7 +17,7 @@ runs:
- name: Run formatter
run: |
find src unittests -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.ipp' \) -print0 | xargs -0 clang-format-17 -i
./.githooks/pre-commit
shell: bash
- name: Check for differences