Explorar o código

Fix run_local for sudo and send.

Aurelien %!s(int64=5) %!d(string=hai) anos
pai
achega
b1ed210abb
Modificáronse 1 ficheiros con 6 adicións e 3 borrados
  1. 6 3
      byrd/main.py

+ 6 - 3
byrd/main.py

@@ -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