aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2016-02-29 10:15:52 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-02-29 17:40:00 +0000
commit05c7d11baba6eca78cd9b440a6453fdab366c2c8 (patch)
tree7c5ca2da2d834bd6d5de37a9f2f5f1866d8cda14 /src/main
parentb47288152eef10d39744fd633e43e3722d910b12 (diff)
Use client environment for repository_ctx.which path environment
This unify the way which() and os.environ() get their environment and won't lead to weird issue. -- MOS_MIGRATED_REVID=115829154
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
index 2817cab15d..22b6f872bb 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
@@ -307,7 +307,7 @@ public class SkylarkRepositoryContext {
Location.BUILTIN,
"Program argument of which() may not contains a / or a \\ ('" + program + "' given)");
}
- for (String p : pathEnv) {
+ for (String p : getPathEnvironment()) {
PathFragment fragment = new PathFragment(p);
if (fragment.isAbsolute()) {
// We ignore relative path as they don't mean much here (relative to where? the workspace
@@ -326,20 +326,23 @@ public class SkylarkRepositoryContext {
return Runtime.NONE;
}
- // This is non final so that test can overwrite it.
- private static ImmutableList<String> pathEnv = getPathEnvironment();
+ // This is just for test to overwrite the path environment
+ private static ImmutableList<String> pathEnv = null;
@VisibleForTesting
static void setPathEnvironment(String... pathEnv) {
SkylarkRepositoryContext.pathEnv = ImmutableList.<String>copyOf(pathEnv);
}
- private static ImmutableList<String> getPathEnvironment() {
- String pathEnv = System.getenv("PATH");
- if (pathEnv == null) {
+ private ImmutableList<String> getPathEnvironment() {
+ if (pathEnv != null) {
+ return pathEnv;
+ }
+ String pathEnviron = osObject.getEnviron().get("PATH");
+ if (pathEnviron == null) {
return ImmutableList.of();
}
- return ImmutableList.copyOf(pathEnv.split(File.pathSeparator));
+ return ImmutableList.copyOf(pathEnviron.split(File.pathSeparator));
}
@Override