Index: gclient_utils.py |
diff --git a/gclient_utils.py b/gclient_utils.py |
index 47ea50286bf9e2e66347395dd3595966075e0233..1801a6b5723e80cb12dd9f609d727e5c13faf647 100644 |
--- a/gclient_utils.py |
+++ b/gclient_utils.py |
@@ -5,6 +5,7 @@ |
"""Generic utils.""" |
import codecs |
+import cStringIO |
import logging |
import os |
import pipes |
@@ -428,6 +429,7 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None, |
""" |
assert print_stdout or filter_fn |
stdout = stdout or sys.stdout |
+ output = cStringIO.StringIO() |
filter_fn = filter_fn or (lambda x: None) |
sleep_interval = RETRY_INITIAL_SLEEP |
@@ -453,9 +455,10 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None, |
filter_fn(None) |
in_line = '' |
while in_byte: |
+ output.write(in_byte) |
+ if print_stdout: |
+ stdout.write(in_byte) |
if in_byte != '\r': |
- if print_stdout: |
- stdout.write(in_byte) |
if in_byte != '\n': |
in_line += in_byte |
else: |
@@ -480,7 +483,7 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None, |
raise |
if rv == 0: |
- return 0 |
+ return output.getvalue() |
if not retry: |
break |
print ("WARNING: subprocess '%s' in %s failed; will retry after a short " |