diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2014-11-22 15:46:17 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2014-11-22 16:41:10 -0800 |
commit | 00981cbdfff391d858d262083d24b685217a8353 (patch) | |
tree | 0d33bcdd109acfb640f24e146cc4b9f40a636612 /autogen.sh | |
parent | 238c052fdb9da3b1f96c09809461b70813c5bebc (diff) |
Add git commit hooks that do some simple checks on commits.
* autogen.sh: Install Git hooks, if using Git.
* build-aux/git-hooks/commit-msg, build-aux/git-hooks/pre-commit:
New files, which are Git hooks that check for portable file names, and
do some simple checks for commit message format.
Diffstat (limited to 'autogen.sh')
-rwxr-xr-x | autogen.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/autogen.sh b/autogen.sh index bc8a73db6b..69812cdcfe 100755 --- a/autogen.sh +++ b/autogen.sh @@ -208,6 +208,46 @@ autoreconf -i -I m4 || exit $? ## cause 'make' to needlessly run 'autoheader'. echo timestamp > src/stamp-h.in || exit +## Install Git hooks, if using Git. +if test -d .git/hooks; then + tailored_hooks= + sample_hooks= + + for hook in commit-msg pre-commit; do + cmp build-aux/git-hooks/$hook .git/hooks/$hook >/dev/null 2>&1 || + tailored_hooks="$tailored_hooks $hook" + done + for hook in applypatch-msg pre-applypatch; do + cmp .git/hooks/$hook.sample .git/hooks/$hook >/dev/null 2>&1 || + sample_hooks="$sample_hooks $hook" + done + + if test -n "$tailored_hooks$sample_hooks"; then + echo "Installing git hooks..." + + case `cp --help 2>/dev/null` in + *--backup*--verbose*) + cp_options='--backup=numbered --verbose';; + *) + cp_options='';; + esac + + if test -n "$tailored_hooks"; then + for hook in $tailored_hooks; do + cp $cp_options build-aux/git-hooks/$hook .git/hooks || exit + chmod a-w .git/hooks/$hook || exit + done + fi + + if test -n "$sample_hooks"; then + for hook in $sample_hooks; do + cp $cp_options .git/hooks/$hook.sample .git/hooks/$hook || exit + chmod a-w .git/hooks/$hook || exit + done + fi + fi +fi + echo "You can now run \`./configure'." exit 0 |