def command(self, value): if is_non_string_iterable(value): it = iter(value) cmd = EscapedString.disallow(next(it)) args_str = ' '.join(self.escape_string(x) for x in it) value = "%s %s" % (cmd, args_str) else: value = EscapedString.disallow(value) self._addline(value)
def command(self, value): if self.passive: return if is_non_string_iterable(value): it = iter(value) cmd = EscapedString.disallow(next(it)) value = [cmd] + [self.escape_string(x) for x in it] else: value = EscapedString.disallow(value) value = self.escape_string(value) try: p = self.subprocess(value) p.communicate() except Exception as e: cmd = shlex_join(value) raise RexError('Error executing command: %s\n%s' % (cmd, str(e)))