1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 23:22:37 +02:00

git-hooks: Fix install script for various git versions

There are older versions of git-rev-parse that don't understand the
`--git-path` switch. Also, when the install script was written, git-
rev-parse had a bug when it wasn't run from the root directory. They
fixed the behaviour by now. To simplify things and not have to account
for that too, we just bail out when the script is run from a sub-
directory.

Change-Id: I7ee8d4d54db48f7207fe8abf895c7fbba7685ad2
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/22971
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
This commit is contained in:
Nico Huber 2017-12-22 02:09:18 +01:00
parent cbb46e261d
commit 4164c54196

View File

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