meson: install the git hook (#6425)

This was done autogen.sh previously and was dropped in
72cdb3e783. Let's add it back.
The meson configuration step is the only reasonable place.

Note that this only works for the most standard git dirs, e.g.
the hook will not be installed if git worktree is used or if
$GIT_DIR is specified, etc. I think that's OK because most of
the time meson will be run at least once in the original cloned
dir.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2017-07-24 04:41:45 -04:00 committed by Lennart Poettering
parent c702bd3b69
commit 003c887967
2 changed files with 19 additions and 0 deletions

View File

@ -26,6 +26,14 @@ m4_defines = []
#####################################################################
# Try to install the git pre-commit hook
git_hook = run_command(join_paths(meson.source_root(), 'tools/add-git-hook.sh'))
if git_hook.returncode() == 0
message(git_hook.stdout().strip())
endif
#####################################################################
rootprefixdir = get_option('rootprefix')
if get_option('split-usr')
conf.set('HAVE_SPLIT_USR', true)

11
tools/add-git-hook.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh -eu
cd "$MESON_SOURCE_ROOT"
if [ ! -f .git/hooks/pre-commit.sample -o -f .git/hooks/pre-commit ]; then
exit 2 # not needed
fi
cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
echo 'Activated pre-commit hook'