nicer output for the ssh command: show quotes only when needed
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Mon, 14 Mar 2016 09:56:39 +0000 (10:56 +0100)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Mon, 14 Mar 2016 09:56:39 +0000 (10:56 +0100)
nepi/util/sshfuncs.py

index 663eeb7..9ba5982 100644 (file)
@@ -683,6 +683,12 @@ fi
 
     return (out, err), proc
 
+# add quotes around a shell arg only if it has spaces
+def pretty_arg(shell_arg):
+    return shell_arg if ' ' not in shell_arg else "'{}'".format(shell_arg)
+def pretty_args(shell_args):
+    return " ".join([pretty_arg(shell_arg) for shell_arg in shell_args])
+
 def _retry_rexec(args,
                  log_msg,
                  stdout = subprocess.PIPE,
@@ -695,7 +701,7 @@ def _retry_rexec(args,
 
     for x in range(retry):
         # display command actually invoked when debug is turned on
-        message = " ".join( [ "'{}'".format(arg) for arg in args ] )
+        message = pretty_args(args)
         log("sshfuncs: invoking {}".format(message), logging.DEBUG)
         extras = {} if PY2 else {'universal_newlines' : True}
         # connects to the remote host and starts a remote connection