cc_configure.bzl: Output error message when executing a command fails
--
Change-Id: I9ccc29369a0b3b704b21737127de5744f2a94a59
Reviewed-on: https://bazel-review.googlesource.com/#/c/4102
MOS_MIGRATED_REVID=127945552
diff --git a/tools/cpp/cc_configure.bzl b/tools/cpp/cc_configure.bzl
index 5158613..b7b057a 100644
--- a/tools/cpp/cc_configure.bzl
+++ b/tools/cpp/cc_configure.bzl
@@ -85,6 +85,16 @@
auto_configure_fail("Cannot find %s in PATH, please make sure %s is installed and add its directory in PATH.\nPATH=%s" % (cmd, cmd, path))
return str(result)
+
+def _execute(repository_ctx, command):
+ """Execute a command, return stdout if succeed and throw an error if it fails."""
+ result = repository_ctx.execute(command)
+ if result.stderr:
+ auto_configure_fail(result.stderr)
+ else:
+ return result.stdout.strip()
+
+
def _get_tool_paths(repository_ctx, darwin, cc):
"""Compute the path to the various tools."""
return {k: _which(repository_ctx, k, "/usr/bin/" + k)
@@ -277,10 +287,7 @@
# TODO(pcloudy): Remove this after MSVC CROSSTOOL becomes default on Windows
def _get_windows_crosstool_content(repository_ctx):
"""Return the content of msys crosstool which is still the default CROSSTOOL on Windows."""
- result = repository_ctx.execute(["cygpath", "-m", "/"])
- if result.stderr:
- fail(result.stderr)
- msys_root = result.stdout.strip()
+ msys_root = _execute(repository_ctx, ["cygpath", "-m", "/"])
return (
' abi_version: "local"\n' +
' abi_libc_version: "local"\n' +
@@ -372,7 +379,7 @@
"""Find Visual Studio install path."""
bash_bin = _which_cmd(repository_ctx, "bash.exe")
program_files_dir = _get_env_var(repository_ctx, "ProgramFiles(x86)", "C:\\Program Files (x86)")
- vs_version = repository_ctx.execute([bash_bin, "-c", "ls '%s' | grep -E 'Microsoft Visual Studio [0-9]+' | sort | tail -n 1" % program_files_dir]).stdout.strip()
+ vs_version = _execute(repository_ctx, [bash_bin, "-c", "ls '%s' | grep -E 'Microsoft Visual Studio [0-9]+' | sort | tail -n 1" % program_files_dir])
return program_files_dir + "/" + vs_version
@@ -383,7 +390,7 @@
"@echo off\n" +
"call \"" + vsvars + "\" amd64 \n" +
"echo PATH=%PATH%,INCLUDE=%INCLUDE%,LIB=%LIB% \n", True)
- envs = repository_ctx.execute(["wrapper/get_env.bat"]).stdout.strip().split(",")
+ envs = _execute(repository_ctx, ["wrapper/get_env.bat"]).split(",")
env_map = {}
for env in envs:
key, value = env.split("=")