if not globals.quiet:
print('\x1b[33m* %s\x1b[0m' % m)
+def escape_spaces(s):
+ return s.replace(' ', '\\ ')
+
def scp_escape(n):
"""Escape a host:filename string for use with an scp command"""
s = n.split(':')
else:
return '\"%s\"' % s[0]
+ def mv_escape(n):
+ return '\"%s\"' % n.substr(' ', '\\ ')
+
def copytree(a, b):
log('copy %s -> %s' % (scp_escape(a), scp_escape(b)))
if b.startswith('s3://'):
host = b[:bc]
path = b[bc+1:]
temp_path = os.path.join(os.path.dirname(path), ".tmp." + os.path.basename(path))
- command('scp %s %s' % (scp_escape(a), scp_escape('%s:%s' % (host, temp_path))))
- command('ssh %s -- mv %s %s' % (host, mv_escape(temp_path), mv_escape(path)))
+ command('scp %s %s' % (scp_escape(a), scp_escape(host + ":" + temp_path)))
+ command('ssh %s -- mv "%s" "%s"' % (host, escape_spaces(temp_path), escape_spaces(path)))
else:
command('scp %s %s' % (scp_escape(a), scp_escape(b)))