# HG changeset patch # User Mads Kiilerich # Date 1533687791 -7200 # Node ID 39bdf0ab2862c055dccf05a7227b7f5a172ded6a # Parent efe7ed15e12c4d6dd250881e6b9585e14fdbeb6b hooks: use os.environ directly for KALLITHEA_EXTRAS instead of sometimes passing it as parameter It is better to be consistent ... even if that means always using the global environment that is hard to avoid. diff -r efe7ed15e12c -r 39bdf0ab2862 kallithea/config/post_receive_tmpl.py --- a/kallithea/config/post_receive_tmpl.py Wed Aug 08 02:23:11 2018 +0200 +++ b/kallithea/config/post_receive_tmpl.py Wed Aug 08 02:23:11 2018 +0200 @@ -28,7 +28,7 @@ def main(): repo_path = os.path.abspath('.') git_stdin_lines = sys.stdin.readlines() - sys.exit(kallithea.lib.hooks.handle_git_post_receive(repo_path, git_stdin_lines, os.environ)) + sys.exit(kallithea.lib.hooks.handle_git_post_receive(repo_path, git_stdin_lines)) if __name__ == '__main__': diff -r efe7ed15e12c -r 39bdf0ab2862 kallithea/config/pre_receive_tmpl.py --- a/kallithea/config/pre_receive_tmpl.py Wed Aug 08 02:23:11 2018 +0200 +++ b/kallithea/config/pre_receive_tmpl.py Wed Aug 08 02:23:11 2018 +0200 @@ -28,7 +28,7 @@ def main(): repo_path = os.path.abspath('.') git_stdin_lines = sys.stdin.readlines() - sys.exit(kallithea.lib.hooks.handle_git_pre_receive(repo_path, git_stdin_lines, os.environ)) + sys.exit(kallithea.lib.hooks.handle_git_pre_receive(repo_path, git_stdin_lines)) if __name__ == '__main__': diff -r efe7ed15e12c -r 39bdf0ab2862 kallithea/lib/hooks.py --- a/kallithea/lib/hooks.py Wed Aug 08 02:23:11 2018 +0200 +++ b/kallithea/lib/hooks.py Wed Aug 08 02:23:11 2018 +0200 @@ -357,7 +357,7 @@ return 0 -def _hook_environment(repo_path, env): +def _hook_environment(repo_path): """ Create a light-weight environment for stand-alone scripts and return an UI and the db repository. @@ -371,7 +371,7 @@ from kallithea.config.environment import load_environment from kallithea.model.base import init_model - extras = _extract_extras(env) + extras = _extract_extras() path, ini_name = os.path.split(extras['config']) conf = appconfig('config:%s' % ini_name, relative_to=path) conf = load_environment(conf.global_conf, conf.local_conf) @@ -395,16 +395,16 @@ return baseui, repo -def handle_git_pre_receive(repo_path, git_stdin_lines, env): +def handle_git_pre_receive(repo_path, git_stdin_lines): """Called from Git pre-receive hook""" - baseui, repo = _hook_environment(repo_path, env) + baseui, repo = _hook_environment(repo_path) scm_repo = repo.scm_instance push_lock_handling(baseui, scm_repo) -def handle_git_post_receive(repo_path, git_stdin_lines, env): +def handle_git_post_receive(repo_path, git_stdin_lines): """Called from Git post-receive hook""" - baseui, repo = _hook_environment(repo_path, env) + baseui, repo = _hook_environment(repo_path) # the post push hook should never use the cached instance scm_repo = repo.scm_instance_no_cache() diff -r efe7ed15e12c -r 39bdf0ab2862 kallithea/lib/utils2.py --- a/kallithea/lib/utils2.py Wed Aug 08 02:23:11 2018 +0200 +++ b/kallithea/lib/utils2.py Wed Aug 08 02:23:11 2018 +0200 @@ -538,16 +538,13 @@ return req.host_url + req.script_name -def _extract_extras(env=None): +def _extract_extras(): """ Extracts the Kallithea extras data from os.environ, and wraps it into named AttributeDict object """ - if not env: - env = os.environ - try: - extras = json.loads(env['KALLITHEA_EXTRAS']) + extras = json.loads(os.environ['KALLITHEA_EXTRAS']) except KeyError: raise Exception("Environment variable KALLITHEA_EXTRAS not found")