]>
git.proxmox.com Git - rustc.git/blob - src/llvm/utils/lit/lit/ShCommands.py
2 def __init__(self
, args
, redirects
):
4 self
.redirects
= list(redirects
)
7 return 'Command(%r, %r)' % (self
.args
, self
.redirects
)
9 def __eq__(self
, other
):
10 if not isinstance(other
, Command
):
13 return ((self
.args
, self
.redirects
) ==
14 (other
.args
, other
.redirects
))
16 def toShell(self
, file):
20 elif '"' not in arg
and '$' not in arg
:
23 raise NotImplementedError('Unable to quote %r' % arg
)
26 # For debugging / validation.
28 dequoted
= list(ShUtil
.ShLexer(quoted
).lex())
30 raise NotImplementedError('Unable to quote %r' % arg
)
32 for r
in self
.redirects
:
34 file.write("%s '%s'" % (r
[0][0], r
[1]))
36 file.write("%s%s '%s'" % (r
[0][1], r
[0][0], r
[1]))
39 def __init__(self
, commands
, negate
=False, pipe_err
=False):
40 self
.commands
= commands
42 self
.pipe_err
= pipe_err
45 return 'Pipeline(%r, %r, %r)' % (self
.commands
, self
.negate
,
48 def __eq__(self
, other
):
49 if not isinstance(other
, Pipeline
):
52 return ((self
.commands
, self
.negate
, self
.pipe_err
) ==
53 (other
.commands
, other
.negate
, self
.pipe_err
))
55 def toShell(self
, file, pipefail
=False):
56 if pipefail
!= self
.pipe_err
:
57 raise ValueError('Inconsistent "pipefail" attribute!')
60 for cmd
in self
.commands
:
62 if cmd
is not self
.commands
[-1]:
66 def __init__(self
, lhs
, op
, rhs
):
67 assert op
in (';', '&', '||', '&&')
73 return 'Seq(%r, %r, %r)' % (self
.lhs
, self
.op
, self
.rhs
)
75 def __eq__(self
, other
):
76 if not isinstance(other
, Seq
):
79 return ((self
.lhs
, self
.op
, self
.rhs
) ==
80 (other
.lhs
, other
.op
, other
.rhs
))
82 def toShell(self
, file, pipefail
=False):
83 self
.lhs
.toShell(file, pipefail
)
84 file.write(' %s\n' % self
.op
)
85 self
.rhs
.toShell(file, pipefail
)