diff options
author | Brad King <brad.king@kitware.com> | 2013-04-04 13:48:59 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-04-04 13:48:59 -0400 |
commit | 0d9698a1517db0fd37a0a0b4cff2128f3d27ee71 (patch) | |
tree | 45dde9f707c7344b91cf0860c985d629323a7761 | |
parent | c530aa9375b3412ecba16dad053052500f828e2f (diff) | |
download | cmake-0d9698a1517db0fd37a0a0b4cff2128f3d27ee71.tar.gz |
Load project-specific "start" hooks before our checks
Read from the project ".hooks-config" a configuration value
hooks.start.commit-msg
hooks.start.pre-commit
hooks.start.prepare-commit-msg
to run from our respective hook before its main checks.
-rwxr-xr-x | commit-msg | 3 | ||||
-rw-r--r-- | hooks-config.bash | 6 | ||||
-rwxr-xr-x | pre-commit | 3 | ||||
-rwxr-xr-x | prepare-commit-msg | 3 |
4 files changed, 15 insertions, 0 deletions
diff --git a/commit-msg b/commit-msg index b0006fa91a..1ca1c75732 100755 --- a/commit-msg +++ b/commit-msg @@ -17,6 +17,9 @@ . "${BASH_SOURCE%/*}/hooks-config.bash" +# Start with project-specific hook. +hooks_start commit-msg "$@" + # Prepare a copy of the message: # - strip comment lines # - stop at "diff --git" (git commit -v) diff --git a/hooks-config.bash b/hooks-config.bash index 1da984ddfc..afdbf9dd7d 100644 --- a/hooks-config.bash +++ b/hooks-config.bash @@ -43,6 +43,12 @@ hooks_chain() { hooks_child "$chain" "$@" || exit } +hooks_start() { + hook="$1" ; shift + start="$(hooks_config --get hooks.start.$hook)" + hooks_child "$start" "$@" || exit +} + hooks_child() { child="$1" ; shift test -n "$child" || return 0 diff --git a/pre-commit b/pre-commit index 5fe22bf54d..6496b45c7f 100755 --- a/pre-commit +++ b/pre-commit @@ -17,6 +17,9 @@ . "${BASH_SOURCE%/*}/hooks-config.bash" +# Start with project-specific hook. +hooks_start pre-commit "$@" + die() { echo 'pre-commit hook failure' 1>&2 echo '-----------------------' 1>&2 diff --git a/prepare-commit-msg b/prepare-commit-msg index 9d3383909f..4de7f13f73 100755 --- a/prepare-commit-msg +++ b/prepare-commit-msg @@ -17,6 +17,9 @@ . "${BASH_SOURCE%/*}/hooks-config.bash" +# Start with project-specific hook. +hooks_start prepare-commit-msg "$@" + # Invoke the Gerrit Change-Id hook here for "git merge" because # it does not run the normal commit-msg hook. hooks_GerritId=$(git config --get hooks.GerritId) |