diff --git a/gsutil.py b/gsutil.py index 7e6bb44b2..6578d7844 100755 --- a/gsutil.py +++ b/gsutil.py @@ -28,7 +28,9 @@ DEFAULT_FALLBACK_GSUTIL = os.path.join( class SubprocessError(Exception): - pass + def __init__(self, message=None, code=0): + super(SubprocessError, self).__init__(message) + self.code = code class InvalidGsutilError(Exception): @@ -46,7 +48,7 @@ def call(args, verbose=True, **kwargs): sys.stdout.write(line) code = proc.wait() if code: - raise SubprocessError('%s failed with %s' % (args, code)) + raise SubprocessError('%s failed with %s' % (args, code), code) return ''.join(out) @@ -125,7 +127,11 @@ def run_gsutil(force_version, fallback, target, args): else: gsutil_bin = fallback cmd = [sys.executable, gsutil_bin] + args - os.execv(cmd[0], cmd) + try: + call(cmd) + except SubprocessError as e: + return e.code + return 0 def parse_args(): @@ -145,7 +151,7 @@ def parse_args(): def main(): force_version, fallback, target, args = parse_args() - run_gsutil(force_version, fallback, target, args) + return run_gsutil(force_version, fallback, target, args) if __name__ == '__main__': sys.exit(main()) diff --git a/win_toolchain/toolchain2013.py b/win_toolchain/toolchain2013.py index 3ca83b4a9..35dc1fcb1 100755 --- a/win_toolchain/toolchain2013.py +++ b/win_toolchain/toolchain2013.py @@ -150,7 +150,7 @@ def ExtractIso(iso_path): # TODO(scottmg): Do this (and exe) manually with python code. # Note that at the beginning of main() we set the working directory to 7z's # location so that 7z can find its codec dll. - RunOrDie('7z x "%s" -y "-o%s" >nul' % (iso_path, target_path)) + RunOrDie('7z x "%s" -y "-o%s"' % (iso_path, target_path)) return target_path @@ -431,7 +431,7 @@ def DoTreeMirror(target_dir, tree_sha1): local_zip = DownloadUsingGsutil(tree_sha1 + '.zip') sys.stdout.write('Extracting %s...\n' % local_zip) sys.stdout.flush() - RunOrDie('7z x "%s" -y "-o%s" >nul' % (local_zip, target_dir)) + RunOrDie('7z x "%s" -y "-o%s"' % (local_zip, target_dir)) def main():