1*0d6140beSAndroid Build Coastguard Worker#!/bin/sh -e 2*0d6140beSAndroid Build Coastguard Worker 3*0d6140beSAndroid Build Coastguard Workerroot=$(git rev-parse --show-cdup 2>/dev/null) || \ 4*0d6140beSAndroid Build Coastguard Worker { echo "Not under git control. Cannot install git hooks." >&2 ; exit 0 ; } 5*0d6140beSAndroid Build Coastguard Worker 6*0d6140beSAndroid Build Coastguard Worker[ -z "${root}" ] || \ 7*0d6140beSAndroid Build Coastguard Worker { echo "Not in root directory. Can only run from git root." >&2 ; exit 1 ; } 8*0d6140beSAndroid Build Coastguard Worker 9*0d6140beSAndroid Build Coastguard Workersrc=util/git-hooks/ # relative to root 10*0d6140beSAndroid Build Coastguard Workerhooks=$(cd "${src}" && git ls-files -c | grep -Ev 'install.sh|wrapper.sh') 11*0d6140beSAndroid Build Coastguard Worker 12*0d6140beSAndroid Build Coastguard Workerif [ "$(git rev-parse --git-path 2>/dev/null)" = "--git-path" ]; then 13*0d6140beSAndroid Build Coastguard Worker # very old git, we have to guess 14*0d6140beSAndroid Build Coastguard Worker dst=".git/hooks/" 15*0d6140beSAndroid Build Coastguard Worker rel="../../" 16*0d6140beSAndroid Build Coastguard Workerelse 17*0d6140beSAndroid Build Coastguard Worker dst=$(git rev-parse --git-path hooks/) 18*0d6140beSAndroid Build Coastguard Worker rel=$(git rev-parse --prefix "${dst}" --show-cdup) 19*0d6140beSAndroid Build Coastguard Workerfi 20*0d6140beSAndroid Build Coastguard Worker 21*0d6140beSAndroid Build Coastguard Workerfor h in $hooks; do 22*0d6140beSAndroid Build Coastguard Worker # Test if hook is not already installed, i.e. doesn't point at the wrapper 23*0d6140beSAndroid Build Coastguard Worker if [ ! "${dst}$h" -ef "${src}wrapper.sh" ]; then 24*0d6140beSAndroid Build Coastguard Worker # preserve custom hooks if any 25*0d6140beSAndroid Build Coastguard Worker if [ -e "${dst}$h" ]; then 26*0d6140beSAndroid Build Coastguard Worker mv "${dst}$h" "${dst}$h.local" 27*0d6140beSAndroid Build Coastguard Worker fi 28*0d6140beSAndroid Build Coastguard Worker ln -s "${rel}${src}wrapper.sh" "${dst}$h" 29*0d6140beSAndroid Build Coastguard Worker fi 30*0d6140beSAndroid Build Coastguard Workerdone 31