git-pre-commit-cppcheck: check only added or modified source files

The regexp is written according to git-diff-index manual.
This commit is contained in:
Jérémy Lefaure 2016-05-01 14:52:03 +02:00 committed by Daniel Marjamäki
parent 4e9afac92f
commit 08d8b2da38
1 changed files with 5 additions and 5 deletions

View File

@ -36,11 +36,11 @@ else
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
# We should not pass non-C/C++ files to cppcheck. Filter filenames with pattern.
pattern='\.(c|cpp|cc|cxx|h|hpp)$'
changed_files=$(git diff-index --cached --name-only $against | grep -E $pattern)
# We should pass only added or modified C/C++ source files to cppcheck.
changed_files=$(git diff-index --cached $against | \
grep -E '[MA] .*\.(c|cpp|cc|cxx)$' | cut -d' ' -f 2)
if [ -n "$changed_files" ]; then
cppcheck --error-exitcode=1 $changed_files
exit $?
cppcheck --error-exitcode=1 $changed_files
exit $?
fi