Index: gsutil.py |
diff --git a/gsutil.py b/gsutil.py |
index 6578d7844171202eb787bf1414c4a371e15a75a0..b889deb300d84f43c328dbb1433211785313a88b 100755 |
--- a/gsutil.py |
+++ b/gsutil.py |
@@ -37,15 +37,21 @@ class InvalidGsutilError(Exception): |
pass |
-def call(args, verbose=True, **kwargs): |
- kwargs['stdout'] = subprocess.PIPE |
- kwargs['stderr'] = subprocess.STDOUT |
+def call(args, verbose=True, native=False, **kwargs): |
+ if native: |
+ kwargs['stdout'] = sys.stdout |
+ kwargs['stderr'] = sys.stderr |
+ else: |
+ kwargs['stdout'] = subprocess.PIPE |
+ kwargs['stderr'] = subprocess.STDOUT |
+ kwargs['stdin'] = sys.stdin |
proc = subprocess.Popen(args, **kwargs) |
out = [] |
- for line in proc.stdout: |
- out.append(line) |
- if verbose: |
- sys.stdout.write(line) |
+ if not native: |
+ for line in proc.stdout: |
+ out.append(line) |
+ if verbose: |
+ sys.stdout.write(line) |
code = proc.wait() |
if code: |
raise SubprocessError('%s failed with %s' % (args, code), code) |
@@ -128,7 +134,7 @@ def run_gsutil(force_version, fallback, target, args): |
gsutil_bin = fallback |
cmd = [sys.executable, gsutil_bin] + args |
try: |
- call(cmd) |
+ call(cmd, native=True) |
scottmg
2015/01/23 20:51:54
The only other place it's used is check_gsutil, so
hinoka
2015/01/23 21:05:35
Done.
|
except SubprocessError as e: |
return e.code |
return 0 |