From 42f4d0f6f86e8152d077d3b0aea4870de7cf8642 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 31 Oct 2013 15:21:56 +0100 Subject: [PATCH] expand ~ in WORKON_HOME (PY-10336) --- .../src/com/intellij/openapi/application/PathManager.java | 4 +--- .../util/src/com/intellij/openapi/util/io/FileUtil.java | 7 +++++++ .../jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/platform/util/src/com/intellij/openapi/application/PathManager.java b/platform/util/src/com/intellij/openapi/application/PathManager.java index 501fd0457aaf..2f2418b2ca35 100644 --- a/platform/util/src/com/intellij/openapi/application/PathManager.java +++ b/platform/util/src/com/intellij/openapi/application/PathManager.java @@ -416,9 +416,7 @@ public class PathManager { // helpers private static String getAbsolutePath(String path) { - if (path.startsWith("~/") || path.startsWith("~\\")) { - path = getUserHome() + path.substring(1); - } + path = FileUtil.expandUserHome(path); return new File(path).getAbsolutePath(); } diff --git a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java index cd3668c73250..677587c19876 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java @@ -1213,6 +1213,13 @@ public class FileUtil extends FileUtilRt { return path; } + public static String expandUserHome(String path) { + if (path.startsWith("~/") || path.startsWith("~\\")) { + path = SystemProperties.getUserHome() + path.substring(1); + } + return path; + } + @NotNull public static File[] notNullize(@Nullable File[] files) { return notNullize(files, ArrayUtil.EMPTY_FILE_ARRAY); diff --git a/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java b/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java index 26a215da6436..5bdecd7a521c 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java +++ b/python/src/com/jetbrains/python/sdk/flavors/VirtualEnvSdkFlavor.java @@ -17,9 +17,9 @@ package com.jetbrains.python.sdk.flavors; import com.intellij.ide.DataManager; import com.intellij.openapi.actionSystem.CommonDataKeys; -import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -67,7 +67,7 @@ public class VirtualEnvSdkFlavor extends CPythonSdkFlavor { public static VirtualFile getDefaultLocation() { final String path = System.getenv().get("WORKON_HOME"); if (!StringUtil.isEmpty(path)) { - return LocalFileSystem.getInstance().findFileByPath(path.replace('\\','/')); + return LocalFileSystem.getInstance().findFileByPath(FileUtil.expandUserHome(path).replace('\\','/')); } final VirtualFile userHome = LocalFileSystem.getInstance().findFileByPath(SystemProperties.getUserHome().replace('\\','/'));