summaryrefslogtreecommitdiff
path: root/platform/util/src/com/intellij/util/EnvironmentUtil.java
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-09-04 13:25:33 -0700
committerTor Norbye <tnorbye@google.com>2014-09-04 13:25:33 -0700
commitd245f58efbfc26b13b9b9d5e52e6a83a0d76216c (patch)
treebca7d49005d81d10c70bc3f547df041c636b4300 /platform/util/src/com/intellij/util/EnvironmentUtil.java
parent9cde0e3c015174898df8b8f3672185941fad4786 (diff)
parentc3d3a90f6b4ead083d63e28e6b9fcea93d675678 (diff)
downloadidea-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.java18
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 {