From afe28470c0c7776afe4824c9ec81abd6eab52d40 Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Wed, 3 May 2017 19:11:01 +0200 Subject: [PATCH] [enh] Add execution dir in env on hook exec (#293) * [enh] Add execution dir in env on hook exec * [enh] YNH_EXECUTION_DIR become YNH_CWD * [fix] Hook exec with no env fail * [enh] Remove dead condition --- src/yunohost/hook.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/yunohost/hook.py b/src/yunohost/hook.py index b675caa2e..7d53a2d5f 100644 --- a/src/yunohost/hook.py +++ b/src/yunohost/hook.py @@ -326,6 +326,11 @@ def hook_exec(path, args=None, raise_on_error=False, no_trace=False, else: cmd_script = path + # Add Execution dir to environment var + if env is None: + env = {} + env['YNH_CWD'] = chdir + # Construct command to execute if user == "root": command = ['sh', '-c'] @@ -337,11 +342,11 @@ def hook_exec(path, args=None, raise_on_error=False, no_trace=False, else: # use xtrace on fd 7 which is redirected to stdout cmd = 'BASH_XTRACEFD=7 /bin/bash -x "{script}" {args} 7>&1' - if env: - # prepend environment variables - cmd = '{0} {1}'.format( - ' '.join(['{0}={1}'.format(k, shell_quote(v)) \ - for k, v in env.items()]), cmd) + + # prepend environment variables + cmd = '{0} {1}'.format( + ' '.join(['{0}={1}'.format(k, shell_quote(v)) \ + for k, v in env.items()]), cmd) command.append(cmd.format(script=cmd_script, args=cmd_args)) if logger.isEnabledFor(log.DEBUG):