diff options
author | Damien Martin-Guillerez <dmarting@google.com> | 2016-02-29 10:15:52 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2016-02-29 17:40:00 +0000 |
commit | 05c7d11baba6eca78cd9b440a6453fdab366c2c8 (patch) | |
tree | 7c5ca2da2d834bd6d5de37a9f2f5f1866d8cda14 /src/main/java/com/google | |
parent | b47288152eef10d39744fd633e43e3722d910b12 (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/java/com/google')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java | 17 |
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 |