1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-21 18:04:06 +03:00

Add a wrapper script as git pre-commit hook

When developer mode is enabled, the wrapper script
"script/git-hooks/pre-commit-hook" gets installed as

  .git/hooks/pre-commit

and calls "script/git-hooks/pre-commit-script".

This way we can later modify the "script/git-hooks/pre-commit-script"
without the need to ever change the installed commit hook itself.

Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Martin Schwenke <martin at meltin.net>
Reviewed-by: Jeremy Allison <jra at samba.org>
This commit is contained in:
Ralph Boehme 2018-04-10 13:04:27 +02:00 committed by Jeremy Allison
parent a6fade4e10
commit 8649e21665
3 changed files with 42 additions and 1 deletions

View File

@ -0,0 +1,17 @@
#!/bin/sh
set -eu
gitdir=$(git rev-parse --show-toplevel)
if [ $? -ne 0 ] ; then
echo "git rev-parse --show-toplevel failed"
exit 1
fi
if [ ! -f ${gitdir}/script/git-hooks/pre-commit-script ] ; then
exit 0
fi
${gitdir}/script/git-hooks/pre-commit-script || exit $?
exit 0

View File

@ -0,0 +1,17 @@
#!/bin/sh
set -eu
#
# make emacs/magit work, cf
# https://github.com/magit/magit/issues/3419
#
unset GIT_LITERAL_PATHSPECS
gitdir=$(git rev-parse --show-toplevel)
if [ $? -ne 0 ] ; then
echo "git rev-parse --show-toplevel failed"
exit 1
fi
exit 0

View File

@ -10,7 +10,7 @@ import sys, os, tempfile
sys.path.insert(0, srcdir+"/buildtools/wafsamba")
import wafsamba, Options, samba_dist, samba_git, Scripting, Utils, samba_version
import Logs, samba_utils
import shutil
samba_dist.DIST_DIRS('.')
samba_dist.DIST_BLACKLIST('.gitignore .bzrignore source4/selftest/provisions')
@ -106,6 +106,13 @@ def configure(conf):
if Options.options.developer:
conf.ADD_CFLAGS('-DDEVELOPER -DDEBUG_PASSWORD')
conf.env.DEVELOPER = True
# if we are in a git tree without a pre-commit hook, install a
# simple default.
pre_commit_hook = os.path.join(srcdir, '.git/hooks/pre-commit')
if (os.path.isdir(os.path.dirname(pre_commit_hook)) and
not os.path.exists(pre_commit_hook)):
shutil.copy(os.path.join(srcdir, 'script/git-hooks/pre-commit-hook'),
pre_commit_hook)
conf.ADD_EXTRA_INCLUDES('#include/public #source4 #lib #source4/lib #source4/include #include #lib/replace')