diff options
author | Alexander Lohnau <alexander.lohnau@gmx.de> | 2021-01-11 20:39:06 +0100 |
---|---|---|
committer | David Faure <faure@kde.org> | 2021-01-16 08:50:13 +0000 |
commit | 45edd1b17051def13c157cba3b01fac53364149c (patch) | |
tree | ec6644d3b24cf272ae1a6e87e9720fe409de2985 /kde-modules/kde-git-commit-hooks | |
parent | b7affc18e5dad21fe29451cd9ecff54e40e42d79 (diff) | |
download | extra-cmake-modules-45edd1b17051def13c157cba3b01fac53364149c.tar.gz extra-cmake-modules-45edd1b17051def13c157cba3b01fac53364149c.tar.bz2 |
Add cmake function to configure git pre-commit hooks
This will allow us to force QS checks before
the developer commits a change. Currently only
clang-format is supported, but as on #plasma and
https://phabricator.kde.org/T11214 discussed we
might want to add different formatters.
By making the checks configurable we are flexible
and can easily extend it.
Diffstat (limited to 'kde-modules/kde-git-commit-hooks')
-rwxr-xr-x | kde-modules/kde-git-commit-hooks/clang-format.sh | 13 | ||||
-rw-r--r-- | kde-modules/kde-git-commit-hooks/pre-commit.in | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/kde-modules/kde-git-commit-hooks/clang-format.sh b/kde-modules/kde-git-commit-hooks/clang-format.sh new file mode 100755 index 00000000..d351e3cd --- /dev/null +++ b/kde-modules/kde-git-commit-hooks/clang-format.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# Based on okular/hooks/pre-commit, credits go to Albert Astals Cid + +readonly output=$(git clang-format -v --diff) + +if [[ "$output" == *"no modified files to format"* ]]; then exit 0; fi +if [[ "$output" == *"clang-format did not modify any files"* ]]; then exit 0; fi + +echo "ERROR: You have unformatted changes, please format your files. You can do this using the following commands:" +echo " git clang-format --force # format the changed parts" +echo " git clang-format --diff # preview the changes done by the formatter" +exit 1 diff --git a/kde-modules/kde-git-commit-hooks/pre-commit.in b/kde-modules/kde-git-commit-hooks/pre-commit.in new file mode 100644 index 00000000..36cdfd5d --- /dev/null +++ b/kde-modules/kde-git-commit-hooks/pre-commit.in @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +${CLANG_FORMAT_SCRIPT} |