summaryrefslogtreecommitdiffstats
path: root/lldb/scripts
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2015-01-16 23:16:22 +0000
committerEnrico Granata <egranata@apple.com>2015-01-16 23:16:22 +0000
commit8bfb5544cf7c85b1d0eb80e4ce1ff7d0d80119f1 (patch)
tree3173523611d05d03ecdbbc1492cfc779244b0acf /lldb/scripts
parent36319538d0981498c9eb6ba14066049d653298a5 (diff)
downloadbcm5719-llvm-8bfb5544cf7c85b1d0eb80e4ce1ff7d0d80119f1.tar.gz
bcm5719-llvm-8bfb5544cf7c85b1d0eb80e4ce1ff7d0d80119f1.zip
Several improvements to the shush script
llvm-svn: 226343
Diffstat (limited to 'lldb/scripts')
-rwxr-xr-xlldb/scripts/shush37
1 files changed, 27 insertions, 10 deletions
diff --git a/lldb/scripts/shush b/lldb/scripts/shush
index 279d632901b..a2dd6c8c58d 100755
--- a/lldb/scripts/shush
+++ b/lldb/scripts/shush
@@ -4,44 +4,61 @@ import sys
import subprocess
import tempfile
import time
+import os
+
+class Printer(object):
+ def __init__(self):
+ pass
+
+ @classmethod
+ def write(self, message):
+ sys.stdout.write("%s\n" % message)
+ sys.stdout.flush()
def command():
return ' '.join(sys.argv[1:])
def tmpfile(suffix=None):
+ if suffix is None: suffix = ""
return tempfile.NamedTemporaryFile(prefix='shush', suffix=suffix, delete=False)
-def launch(sin=None, sout=None, serr=None):
+def launch(cmd="/bin/ls", sin=None, sout=None):
class Process(object):
- def __init__(self, p, i, o, e):
+ def __init__(self, p, i, o):
self.p = p
self.stdin = i
self.stdout = o
- self.stderr = e
def poll(self):
self.returncode = self.p.poll()
return self.returncode
- return Process(subprocess.Popen(command(), shell=True, stdin=sin, stdout=sout, stderr=serr), sin, sout, serr)
+ return Process(subprocess.Popen(cmd, shell=True, stdin=sin, stdout=sout, stderr=subprocess.STDOUT), sin, sout)
def wait(p):
while p.poll() is None:
time.sleep(5)
- print "still running..." # fool Xcode into thinking that I am doing something...
+ Printer.write("still running @ %s..." % time.strftime("%Y%m%d%H%M%S")) # fool Xcode into thinking that I am doing something...
return p
def exit(p):
code = p.returncode
if code != 0:
- print "error: sucks to be you"
- print ("error: shushed process failed - go check %s and %s for details" % (p.stdout.name, p.stderr.name))
+ Printer.write("error: sucks to be you")
+ Printer.write("error: shushed process failed - go check %s for details" % (p.stdout.name))
+ else:
+ Printer.write("shush: success - output is going away")
+ try:
+ os.remove(p.stdout.name)
+ finally:
+ pass
sys.exit(code)
def main():
- out = tmpfile(suffix="stdout")
- err = tmpfile(suffix="stderr")
- p = wait(launch(sout=out, serr=err))
+ out = tmpfile()
+ cmd = command()
+ Printer.write("shush: launching '%s' - std{out|err}=%s" % (cmd, out.name))
+ p = wait(launch(cmd=cmd, sout=out))
exit(p)
main()
OpenPOWER on IntegriCloud