correctly add packed egg paths to library roots

This commit is contained in:
Dmitry Jemerov
2011-03-22 16:01:17 +01:00
parent e945f83404
commit 6c5fa4bb8e
@@ -2,6 +2,7 @@ package com.jetbrains.python.buildout;
import com.intellij.facet.FacetManager;
import com.intellij.facet.ModifiableFacetModel;
import com.intellij.ide.highlighter.ArchiveFileType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
@@ -14,6 +15,7 @@ import com.intellij.openapi.roots.impl.OrderEntryUtil;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.JarFileSystem;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.ui.UIUtil;
@@ -172,7 +174,16 @@ public class BuildoutConfigurable implements Configurable, NonDefaultProjectConf
}
if (paths != null) {
for (String dir : paths) {
modifiableModel.addRoot("file://"+dir, OrderRootType.CLASSES);
VirtualFile pathEntry = LocalFileSystem.getInstance().findFileByPath(dir);
if (pathEntry != null && !pathEntry.isDirectory() && pathEntry.getFileType() instanceof ArchiveFileType) {
pathEntry = JarFileSystem.getInstance().getJarRootForLocalFile(pathEntry);
}
if (pathEntry != null) {
modifiableModel.addRoot(pathEntry, OrderRootType.CLASSES);
}
else {
modifiableModel.addRoot("file://"+dir, OrderRootType.CLASSES);
}
}
}
modifiableModel.commit();