summaryrefslogtreecommitdiff
path: root/autogen.sh
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2014-11-22 15:46:17 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2014-11-22 16:41:10 -0800
commit00981cbdfff391d858d262083d24b685217a8353 (patch)
tree0d33bcdd109acfb640f24e146cc4b9f40a636612 /autogen.sh
parent238c052fdb9da3b1f96c09809461b70813c5bebc (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-xautogen.sh40
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