diff options
Diffstat (limited to 'utils/lit/ShCommands.py')
-rw-r--r-- | utils/lit/ShCommands.py | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/utils/lit/ShCommands.py b/utils/lit/ShCommands.py deleted file mode 100644 index 4550437ce2..0000000000 --- a/utils/lit/ShCommands.py +++ /dev/null @@ -1,85 +0,0 @@ -class Command: - def __init__(self, args, redirects): - self.args = list(args) - self.redirects = list(redirects) - - def __repr__(self): - return 'Command(%r, %r)' % (self.args, self.redirects) - - def __cmp__(self, other): - if not isinstance(other, Command): - return -1 - - return cmp((self.args, self.redirects), - (other.args, other.redirects)) - - def toShell(self, file): - for arg in self.args: - if "'" not in arg: - quoted = "'%s'" % arg - elif '"' not in arg and '$' not in arg: - quoted = '"%s"' % arg - else: - raise NotImplementedError,'Unable to quote %r' % arg - print >>file, quoted, - - # For debugging / validation. - import ShUtil - dequoted = list(ShUtil.ShLexer(quoted).lex()) - if dequoted != [arg]: - raise NotImplementedError,'Unable to quote %r' % arg - - for r in self.redirects: - if len(r[0]) == 1: - print >>file, "%s '%s'" % (r[0][0], r[1]), - else: - print >>file, "%s%s '%s'" % (r[0][1], r[0][0], r[1]), - -class Pipeline: - def __init__(self, commands, negate=False, pipe_err=False): - self.commands = commands - self.negate = negate - self.pipe_err = pipe_err - - def __repr__(self): - return 'Pipeline(%r, %r, %r)' % (self.commands, self.negate, - self.pipe_err) - - def __cmp__(self, other): - if not isinstance(other, Pipeline): - return -1 - - return cmp((self.commands, self.negate, self.pipe_err), - (other.commands, other.negate, self.pipe_err)) - - def toShell(self, file, pipefail=False): - if pipefail != self.pipe_err: - raise ValueError,'Inconsistent "pipefail" attribute!' - if self.negate: - print >>file, '!', - for cmd in self.commands: - cmd.toShell(file) - if cmd is not self.commands[-1]: - print >>file, '|\n ', - -class Seq: - def __init__(self, lhs, op, rhs): - assert op in (';', '&', '||', '&&') - self.op = op - self.lhs = lhs - self.rhs = rhs - - def __repr__(self): - return 'Seq(%r, %r, %r)' % (self.lhs, self.op, self.rhs) - - def __cmp__(self, other): - if not isinstance(other, Seq): - return -1 - - return cmp((self.lhs, self.op, self.rhs), - (other.lhs, other.op, other.rhs)) - - def toShell(self, file, pipefail=False): - self.lhs.toShell(file, pipefail) - print >>file, ' %s\n' % self.op - self.rhs.toShell(file, pipefail) |