[PATCH 1 of 6 v3] hooks: add intermediate function _get_git_hook_interpreter
Thomas De Schampheleire
patrickdepinguin at gmail.com
Mon Apr 8 20:14:52 UTC 2019
# HG changeset patch
# User Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
# Date 1554320638 -7200
# Wed Apr 03 21:43:58 2019 +0200
# Branch stable
# Node ID a4ad7b50bab39a528ac147ae3f50791434313127
# Parent 953047e8c88a9c5ccaa4ddc1bb417622de37f01f
hooks: add intermediate function _get_git_hook_interpreter
The logic to determine the right interpreter for Git hooks is about to
change and possibly become more complex.
Split it off in a separate function so such changes do not require extra
code duplication and preserve the readability of the code.
diff --git a/kallithea/model/scm.py b/kallithea/model/scm.py
--- a/kallithea/model/scm.py
+++ b/kallithea/model/scm.py
@@ -720,6 +720,18 @@ class ScmModel(object):
return choices, hist_l
+ def _get_git_hook_interpreter(self):
+ """Return a suitable interpreter for Git hooks.
+
+ Return a suitable string to be written in the POSIX #! shebang line for
+ Git hook scripts so they invoke Kallithea code with the right Python
+ interpreter and in the right environment.
+
+ FIXME This may not work on Windows and may need a shell wrapper script.
+ To be revisited later...
+ """
+ return sys.executable or 'python2'
+
def install_git_hooks(self, repo, force_create=False):
"""
Creates a kallithea hook inside a git repository
@@ -734,11 +746,11 @@ class ScmModel(object):
if not os.path.isdir(loc):
os.makedirs(loc)
- tmpl_post = "#!/usr/bin/env %s\n" % sys.executable or 'python2'
+ tmpl_post = "#!/usr/bin/env %s\n" % self._get_git_hook_interpreter()
tmpl_post += pkg_resources.resource_string(
'kallithea', os.path.join('config', 'post_receive_tmpl.py')
)
- tmpl_pre = "#!/usr/bin/env %s\n" % sys.executable or 'python2'
+ tmpl_pre = "#!/usr/bin/env %s\n" % self._get_git_hook_interpreter()
tmpl_pre += pkg_resources.resource_string(
'kallithea', os.path.join('config', 'pre_receive_tmpl.py')
)
More information about the kallithea-general
mailing list