linphone-desktop/cmake/hook/pre-commit

27 lines
1 KiB
Bash
Executable file

#!/bin/bash
# This hook verifies that the changes are formatted using clang-format.
# It has to be installed in:
# - .git/hooks/pre-commit for a root project
# - .git/modules/<submodule-name>/hooks/pre-commit for a submodule
if ! [ -x "$(command -v clang-format)" ]; then
echo "Pre commit hook: Please install clang-format (coding style checker) - could not find clang-format in PATH."
exit 1
fi
CHANGED_FILES="$(git diff --name-only --cached --diff-filter=ACMR | grep -E '\.(c|cc|cpp|h|hh)$')"
if [[ -n "$CHANGED_FILES" ]]; then
if ! clang-format --style=file -Werror -n $CHANGED_FILES > /dev/null 2>&1; then
echo "*****************"
echo ""
echo "Pre commit hook: Staged file(s) contains non correctly formatted code. Please correct it using one of the following:"
echo "1) Configure your IDE to format automatically on save (entire file)"
echo "2) Use clang-format to correctly format source code using:"
echo " clang-format --style=file -i <file-to-format>"
echo ""
echo "*** Aborting commit.***"
exit 1
fi
fi