|
|
@@ -95,15 +95,18 @@ def run_local(cmd_or_task, env, cli):
|
|
|
to_path = env.fmt(cmd_or_task.to)
|
|
|
if not os.path.exists(local_path):
|
|
|
raise ByrdException('Path "%s" not found' % local_path)
|
|
|
- copy(local_path, to_path)
|
|
|
- return None
|
|
|
+ if cmd_or_task.sudo:
|
|
|
+ cmd = 'cp %s %s' % (local_path, to_path)
|
|
|
+ else:
|
|
|
+ copy(local_path, to_path)
|
|
|
+ return None
|
|
|
logger.info(env.fmt('{task_desc}', kind='new'))
|
|
|
if cmd_or_task.sudo:
|
|
|
if isinstance(cmd_or_task.sudo, str):
|
|
|
sudo_prefix = 'sudo -u %s sh -c "' % cmd_or_task.sudo
|
|
|
else:
|
|
|
sudo_prefix = 'sudo sh -c "'
|
|
|
- cmd = sudo_prefix + cmd.replace('\n', '') + '"\n'
|
|
|
+ cmd = sudo_prefix + cmd.replace('\n', '').replace('"', '\\"') + '"\n'
|
|
|
if cli.dry_run:
|
|
|
logger.info('[dry-run] ' + cmd)
|
|
|
return None
|