aboutsummaryrefslogtreecommitdiff
path: root/init_githooks.sh
blob: 3349df420611c61c9ba9ca0b7147bb7da599656f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#! /bin/sh
#
# Initialize the local git hooks this repository.
# https://git-scm.com/docs/githooks

topLevel=$(git rev-parse --show-toplevel)
if ! cd "${topLevel}"; then
  echo "filed to cd into topLevel directory '${topLevel}'"
  exit 1
fi

hooksDir="${topLevel}/.githooks"
if ! hooksPath=$(git config core.hooksPath); then
  hooksPath="${topLevel}/.git/hooks"
fi

src="${hooksDir}/generic"
echo "linking hooks..."
for hook in \
  applypatch-msg \
  pre-applypatch \
  post-applypatch \
  pre-commit \
  pre-merge-commit \
  prepare-commit-msg \
  commit-msg \
  post-commit \
  pre-rebase \
  post-checkout \
  post-merge \
  pre-push \
  pre-receive \
  update \
  post-receive \
  post-update \
  push-to-checkout \
  pre-auto-gc \
  post-rewrite \
  sendemail-validate \
  fsmonitor-watchman \
  p4-pre-submit \
  post-index-change
do
  echo "  ${hook}"
  dest="${hooksPath}/${hook}"
  ln -sf "${src}" "${dest}"
done