LayoutGenerator - create directories

GitOrigin-RevId: bc85344be8e8e220700dfc100167e97deafbadb7
This commit is contained in:
Vladimir Krivosheev
2020-04-04 20:04:39 +02:00
committed by intellij-monorepo-bot
parent db3fcf09e4
commit 0918d45daa

View File

@@ -6,26 +6,34 @@ import com.intellij.util.ObjectUtils
import com.intellij.util.execution.ParametersListUtil
import org.jetbrains.intellij.build.impl.PluginLayout
import java.nio.charset.StandardCharsets
import java.nio.file.Files
import java.nio.file.Paths
class LayoutGenerator {
final class LayoutGenerator {
static void main(String[] args) {
String homePath = PathManager.getHomePath(false)
def className = args[0]
def clazz = Class.forName(className)
JetBrainsProductProperties properties = clazz.getConstructor(String.class).newInstance(homePath) as JetBrainsProductProperties
List<PluginLayout> plugins = properties.getProductLayout().getAllNonTrivialPlugins()
OutputStream stream = new FileOutputStream(PathManager.getSystemPath() + File.separator + ObjectUtils.notNull(properties.platformPrefix, "idea") + ".txt", false)
def file = Paths.get(PathManager.getSystemPath(), ObjectUtils.notNull(properties.platformPrefix, "idea") + ".txt")
Files.createDirectories(file.parent)
BufferedWriter stream = Files.newBufferedWriter(file)
try {
println("write to " + file)
Set<String> modules = new LinkedHashSet<>()
for (PluginLayout plugin : plugins) {
Set<String> modules = new LinkedHashSet<>()
modules.clear()
modules.add(plugin.getMainModule())
plugin.moduleJars.entrySet().findAll { !it.key.contains("/") }.collectMany(modules) {it.value}
modules.remove("intellij.platform.commercial.verifier")
if (modules.size() == 1) continue
stream.write((ParametersListUtil.join(new ArrayList<CharSequence> (modules)) + "\n").getBytes(StandardCharsets.UTF_8))
if (modules.size() == 1) {
continue
}
stream.write((ParametersListUtil.join(new ArrayList<CharSequence>(modules)) + "\n"))
}
}
finally {