aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Chris Parsons <cparsons@google.com>2016-06-28 17:33:53 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-29 08:54:24 +0000
commit4fa0bc21a871f0b95e07464c5a527b0e677d99b9 (patch)
tree7169ef29b3277031514c123748cb3873985df4c5 /src
parentcb226127fa817fabf149015f8d4af6de93297366 (diff)
Use a mutable map when collecting environment variables for repository_ctx.execute, so that it allows overriding current environment variables
-- MOS_MIGRATED_REVID=126089693
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java6
-rwxr-xr-xsrc/test/shell/bazel/skylark_repository_test.sh5
2 files changed, 6 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java
index d306a52d4a..b049fa8369 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkExecutionResult.java
@@ -13,7 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.bazel.repository.skylark;
-import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.shell.BadExitStatusException;
import com.google.devtools.build.lib.shell.Command;
@@ -109,7 +109,7 @@ final class SkylarkExecutionResult {
private final List<String> args = new ArrayList<>();
private File directory = null;
- private final ImmutableMap.Builder<String, String> envBuilder = ImmutableMap.builder();
+ private final Map<String, String> envBuilder = Maps.newLinkedHashMap();
private long timeout = -1;
private boolean executed = false;
@@ -181,7 +181,7 @@ final class SkylarkExecutionResult {
for (int i = 0; i < args.size(); i++) {
argsArray[i] = args.get(i);
}
- Command command = new Command(argsArray, envBuilder.build(), directory);
+ Command command = new Command(argsArray, envBuilder, directory);
CommandResult result = command.execute(new byte[]{}, timeout, false);
return new SkylarkExecutionResult(result);
} catch (BadExitStatusException e) {
diff --git a/src/test/shell/bazel/skylark_repository_test.sh b/src/test/shell/bazel/skylark_repository_test.sh
index 6f6551682c..7d0c9dbf14 100755
--- a/src/test/shell/bazel/skylark_repository_test.sh
+++ b/src/test/shell/bazel/skylark_repository_test.sh
@@ -326,7 +326,7 @@ def _impl(repository_ctx):
bin = repository_ctx.which("bin.sh")
if bin == None:
fail("bin.sh not found!")
- result = repository_ctx.execute([bash, "--version"])
+ result = repository_ctx.execute([bash, "--version"], 10, {"FOO": "BAR"})
if result.return_code != 0:
fail("Non-zero return code from bash: " + str(result.return_code))
if result.stderr != "":
@@ -335,7 +335,8 @@ def _impl(repository_ctx):
repo = repository_rule(implementation=_impl, local=True)
EOF
- PATH="${PATH}:${PWD}" bazel build @foo//:bar >& $TEST_log || fail "Failed to build"
+ FOO="BAZ" PATH="${PATH}:${PWD}" bazel build @foo//:bar >& $TEST_log \
+ || fail "Failed to build"
expect_log "version"
}