blob: fda0098f680ee62fdf771ab1224bdfe020d09c12 (
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
|
#!/bin/sh -e
root=$(git rev-parse --show-cdup 2>/dev/null) || \
{ echo "Not under git control. Cannot install git hooks." >&2 ; exit 0 ; }
[ -z "${root}" ] || \
{ echo "Not in root directory. Can only run from git root." >&2 ; exit 1 ; }
src=util/git-hooks/ # relative to root
hooks=$(cd "${src}" && git ls-files -c | grep -Ev 'install.sh|wrapper.sh')
if [ "$(git rev-parse --git-path 2>/dev/null)" = "--git-path" ]; then
# very old git, we have to guess
dst=".git/hooks/"
rel="../../"
else
dst=$(git rev-parse --git-path hooks/)
rel=$(git rev-parse --prefix "${dst}" --show-cdup)
fi
for h in $hooks; do
# Test if hook is not already installed, i.e. doesn't point at the wrapper
if [ ! "${dst}$h" -ef "${src}wrapper.sh" ]; then
# preserve custom hooks if any
if [ -e "${dst}$h" ]; then
mv "${dst}$h" "${dst}$h.local"
fi
ln -s "${rel}${src}wrapper.sh" "${dst}$h"
fi
done
|