Example #1
0
 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)
Example #2
0
    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)))