From 205d6db7bdc3996d5160e9c96595d7f9a19026fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Lebleu?= Date: Mon, 25 Apr 2016 18:10:25 +0200 Subject: [PATCH] [enh] Small changes to env prepending in hook_exec --- src/yunohost/backup.py | 2 +- src/yunohost/hook.py | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/yunohost/backup.py b/src/yunohost/backup.py index e9d945a28..d1abc22ca 100644 --- a/src/yunohost/backup.py +++ b/src/yunohost/backup.py @@ -486,7 +486,7 @@ def backup_restore(auth, name, hooks=[], ignore_hooks=False, env_dict["YNH_APP_INSTANCE_NAME"] = app_instance_name env_dict["YNH_APP_INSTANCE_NUMBER"] = str(app_instance_nb) - hook_exec(tmp_script, args=[tmp_app_dir + '/backup', app_instance_name], + hook_exec(tmp_script, args=[tmp_app_bkp_dir, app_instance_name], raise_on_error=True, chdir=tmp_app_bkp_dir, env=env_dict) except: logger.exception(m18n.n('restore_app_failed', app=app_instance_name)) diff --git a/src/yunohost/hook.py b/src/yunohost/hook.py index 08000d793..da85aaad3 100644 --- a/src/yunohost/hook.py +++ b/src/yunohost/hook.py @@ -329,18 +329,18 @@ def hook_exec(path, args=None, raise_on_error=False, no_trace=False, else: cmd_script = path - envcli = '' - if env is not None: - envcli = ' '.join([ '{key}="{val}"'.format(key=key, val=val) for key,val in env.items()]) - # Construct command to execute command = ['sudo', '-n', '-u', 'admin', '-H', 'sh', '-c'] if no_trace: - cmd = '{envcli} /bin/bash "{script}" {args}' + cmd = '/bin/bash "{script}" {args}' else: # use xtrace on fd 7 which is redirected to stdout - cmd = '{envcli} BASH_XTRACEFD=7 /bin/bash -x "{script}" {args} 7>&1' - command.append(cmd.format(envcli=envcli, script=cmd_script, args=cmd_args)) + 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, v) for k, v in env.items()]), cmd) + command.append(cmd.format(script=cmd_script, args=cmd_args)) if logger.isEnabledFor(log.DEBUG): logger.info(m18n.n('executing_command', command=' '.join(command)))