Mercurial > kallithea
changeset 7631:98deccab042c stable
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.
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
---|---|
date | Wed, 10 Apr 2019 21:54:50 +0200 |
parents | 953047e8c88a |
children | dd88fd3a45cc |
files | kallithea/model/scm.py |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/model/scm.py Mon Apr 01 20:06:41 2019 +0200 +++ b/kallithea/model/scm.py Wed Apr 10 21:54:50 2019 +0200 @@ -720,6 +720,17 @@ 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. + return (sys.executable + or 'python2') + def install_git_hooks(self, repo, force_create=False): """ Creates a kallithea hook inside a git repository @@ -734,11 +745,11 @@ 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') )