summaryrefslogtreecommitdiff
path: root/init.d/50vcs-pre-commit-hook
diff options
context:
space:
mode:
Diffstat (limited to 'init.d/50vcs-pre-commit-hook')
-rwxr-xr-xinit.d/50vcs-pre-commit-hook32
1 files changed, 32 insertions, 0 deletions
diff --git a/init.d/50vcs-pre-commit-hook b/init.d/50vcs-pre-commit-hook
new file mode 100755
index 0000000..33d0ae7
--- /dev/null
+++ b/init.d/50vcs-pre-commit-hook
@@ -0,0 +1,32 @@
+#!/bin/sh
+set -e
+
+case "$VCS" in
+ git)
+ if [ -x .git/hooks/pre-commit ]; then
+ if ! grep -q "etckeeper pre-commit" .git/hooks/pre-commit; then
+ echo "etckeeper warning: .git/hooks/pre-commit needs to be manually modifed to run: etckeeper pre-commit `pwd`" >&2
+ fi
+ else
+ cat >.git/hooks/pre-commit <<EOF
+#!/bin/sh
+# pre-commit hook for etckeeper, to store metadata and do sanity checks
+set -e
+etckeeper pre-commit `pwd`
+EOF
+ chmod +x .git/hooks/pre-commit
+ fi
+ ;;
+ hg)
+ if [ -e .hg/hgrc ] && grep "^\[hooks\]" .hg/hgrc; then
+ echo "etckeeper warning: [hooks] section in .hg/hgrc needs to be manually modified to run: etckeeper pre-commit `pwd`" >&2
+ else
+ touch .hg/hgrc
+ cat >>.hg/hgrc <<EOF
+[hooks]
+# pre-commit hook for etckeeper, to store metadata and do sanity checks
+precommit = etckeeper pre-commit `pwd`
+EOF
+ fi
+ ;;
+esac