result=''
for char in command:
if char in "\\\"'<>&|;()$*~":
- result +='\\'+char
+ result += '\\'+char
else:
- result +=char
+ result += char
return result
# check main IP address against the provided hostname
return "%s@%s"%(self.username,self.hostname)
# command gets run on the right box
- def actual_command (self, command, keep_stdin=False, dry_run=False):
+ def actual_command (self, command, keep_stdin=False, dry_run=False,backslash=True):
if self.is_local():
return command
ssh_command = "ssh "
ssh_command += TestSsh.std_options
if self.unknown_host: ssh_command += TestSsh.unknown_option
ssh_command += self.key_part()
- ssh_command += "%s %s" %(self.hostname_part(),TestSsh.backslash_shell_specials(command))
+ ssh_command += self.hostname_part() + " "
+ if backslash:
+ ssh_command += TestSsh.backslash_shell_specials(command)
+ else:
+ ssh_command += command
return ssh_command
# same in argv form
self.fullname(self.buildname),os.path.basename(local_file) or ".")
if dry_run:
utils.header ("DRY RUN TestSsh.copy %s"%scp_command)
- return True
+ # need to be consistent with the non-dry-run mode
+ return 0
return utils.system(scp_command)
def copy_abs (self,local_file,remote_file,recursive=False):