[PATCH 6 of 6 v3] hooks: use /usr/bin/env only when needed

Mads Kiilerich mads at kiilerich.com
Tue Apr 9 23:10:43 UTC 2019


On 4/8/19 10:14 PM, Thomas De Schampheleire wrote:
> # HG changeset patch
> # User Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
> # Date 1554753972 -7200
> #      Mon Apr 08 22:06:12 2019 +0200
> # Branch stable
> # Node ID d02dee3a34716ea8930e366595e613572a3783e7
> # Parent  cb33fa0fa1551384df6e2f4ab9ddd00d8567c69d
> hooks: use /usr/bin/env only when needed
>
> The use of /usr/bin/env is only needed for relative arguments (or to pass
> variables in the environment, which we don't do). It is thus not needed in
> case the Git hook interpreter is obtained via the ini file, or via
> sys.executable (both of which are expected to be absolute paths).


It would perhaps be "cleaner" to have this change first in the series. 
But no big deal.

Either way: The serious looks good to me. Especially if you consider the 
other comments and agree to leave out "scripts/generate-ini: also allow 
setting mako variables".

/Mads


>
> diff --git a/kallithea/model/scm.py b/kallithea/model/scm.py
> --- a/kallithea/model/scm.py
> +++ b/kallithea/model/scm.py
> @@ -733,7 +733,9 @@ class ScmModel(object):
>           FIXME This may not work on Windows and may need a shell wrapper script.
>           To be revisited later...
>           """
> -        return kallithea.CONFIG.get('git_hook_interpreter') or sys.executable or 'python2'
> +        return (kallithea.CONFIG.get('git_hook_interpreter')
> +                or sys.executable
> +                or '/usr/bin/env python2')
>   
>       def install_git_hooks(self, repo, force_create=False):
>           """
> @@ -749,11 +751,11 @@ class ScmModel(object):
>           if not os.path.isdir(loc):
>               os.makedirs(loc)
>   
> -        tmpl_post = "#!/usr/bin/env %s\n" % self._get_git_hook_interpreter()
> +        tmpl_post = "#!%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" % self._get_git_hook_interpreter()
> +        tmpl_pre = "#!%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