Index: build/gn_run_binary.py |
diff --git a/build/gn_run_binary.py b/build/gn_run_binary.py |
index 7d83f6136fd70e05e0c3628b527a094f1b69a2b8..4767bc6ee0c1e66651a9fb81e2b5bb562a4d4bb0 100644 |
--- a/build/gn_run_binary.py |
+++ b/build/gn_run_binary.py |
@@ -8,15 +8,28 @@ Run with: |
python gn_run_binary.py <binary_name> [args ...] |
""" |
+import os |
import sys |
import subprocess |
-# This script is designed to run binaries produced by the current build. We |
-# always prefix it with "./" to avoid picking up system versions that might |
-# also be on the path. |
-path = './' + sys.argv[1] |
+# Run a command, swallowing the output unless there is an error. |
+def run_command(command): |
+ try: |
+ subprocess.check_output(command, stderr=subprocess.STDOUT) |
+ return 0 |
+ except subprocess.CalledProcessError as e: |
+ return ("Command failed: " + ' '.join(command) + "\n" + |
+ "output: " + e.output) |
+ |
+# Unless the path is absolute, this script is designed to run binaries produced |
+# by the current build. We always prefix it with "./" to avoid picking up system |
+# versions that might also be on the path. |
+if os.path.isabs(sys.argv[1]): |
+ path = sys.argv[1] |
+else: |
+ path = './' + sys.argv[1] |
# The rest of the arguements are passed directly to the executable. |
args = [path] + sys.argv[2:] |
-sys.exit(subprocess.call(args)) |
+sys.exit(run_command(args)) |