diff options
author | Tor Norbye <tnorbye@google.com> | 2014-09-04 13:25:33 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-09-04 13:25:33 -0700 |
commit | d245f58efbfc26b13b9b9d5e52e6a83a0d76216c (patch) | |
tree | bca7d49005d81d10c70bc3f547df041c636b4300 /platform/util/src/com/intellij/util/EnvironmentUtil.java | |
parent | 9cde0e3c015174898df8b8f3672185941fad4786 (diff) | |
parent | c3d3a90f6b4ead083d63e28e6b9fcea93d675678 (diff) | |
download | idea-d245f58efbfc26b13b9b9d5e52e6a83a0d76216c.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into merge
Diffstat (limited to 'platform/util/src/com/intellij/util/EnvironmentUtil.java')
-rw-r--r-- | platform/util/src/com/intellij/util/EnvironmentUtil.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/platform/util/src/com/intellij/util/EnvironmentUtil.java b/platform/util/src/com/intellij/util/EnvironmentUtil.java index 1d7016460f1e..19961bfc0b89 100644 --- a/platform/util/src/com/intellij/util/EnvironmentUtil.java +++ b/platform/util/src/com/intellij/util/EnvironmentUtil.java @@ -255,6 +255,24 @@ public class EnvironmentUtil { return getEnvironmentMap(); } + public static void inlineParentOccurrences(@NotNull Map<String, String> envs) { + Map<String, String> parentParams = new HashMap<String, String>(System.getenv()); + for (Map.Entry<String, String> entry : envs.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + if (value != null) { + String parentVal = parentParams.get(key); + if (parentVal != null && containsEnvKeySubstitution(key, value)) { + envs.put(key, value.replace("$" + key + "$", parentVal)); + } + } + } + } + + private static boolean containsEnvKeySubstitution(final String envKey, final String val) { + return ArrayUtil.find(val.split(File.pathSeparator), "$" + envKey + "$") != -1; + } + @TestOnly static Map<String, String> testLoader() { try { |