From: Thierry Parmentelat <thierry.parmentelat@inria.fr>
Date: Mon, 14 Mar 2016 09:56:39 +0000 (+0100)
Subject: nicer output for the ssh command: show quotes only when needed
X-Git-Tag: nepi-6.1.0-pypi~4
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=a5405fe3a84b359b41355fa02a3f569fbd4a25e6;p=nepi.git

nicer output for the ssh command: show quotes only when needed
---

diff --git a/nepi/util/sshfuncs.py b/nepi/util/sshfuncs.py
index 663eeb78..9ba59827 100644
--- a/nepi/util/sshfuncs.py
+++ b/nepi/util/sshfuncs.py
@@ -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