diff --git a/src/main/kotlin/com/beust/kobalt/app/IdeaFilesTemplate.kt b/src/main/kotlin/com/beust/kobalt/app/IdeaFilesTemplate.kt index eee4c9e2..27c17dce 100644 --- a/src/main/kotlin/com/beust/kobalt/app/IdeaFilesTemplate.kt +++ b/src/main/kotlin/com/beust/kobalt/app/IdeaFilesTemplate.kt @@ -24,9 +24,36 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate { val data = dependencyData.dependenciesDataFor(homeDir("kotlin/kobalt/kobalt/src/Build.kt"), args) val outputDir = KFiles.makeDir(homeDir("t/idea")) generateLibraries(data, outputDir) + generateModulesXml(data, outputDir) println("Generating ideaFiles") } + private fun generateModulesXml(data: DependencyData.GetDependenciesData, outputDir: File) { + val modulesXmlFile = File(outputDir, "modules.xml") + with(arrayListOf()) { + add("") + add("") + add(" ") + add(" ") + + fun moduleLine(iml: String) + = " " + + add(moduleLine("kobalt/Build.kt.iml")) + data.projects.forEach { + val iml = KFiles.joinDir(it.directory, it.name + ".iml") + add(moduleLine(iml)) + } + + add(" ") + add(" ") + add("") + modulesXmlFile.writeText(joinToString("\n")) + log(1, "Created $modulesXmlFile") + } + } + private fun generateLibraries(data: DependencyData.GetDependenciesData, outputDir: File) { data.projects.forEach { generateLibrary(it.name, it.compileDependencies, " (Compile)", outputDir) @@ -41,7 +68,6 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate { private fun generateLibrary(name: String, compileDependencies: List, suffix: String, outputDir: File) { val libraryName = name + suffix - log(1, "Generating libraries for $name$suffix") val librariesOutputDir = KFiles.makeDir(outputDir.path, "libraries") with(arrayListOf()) { add("") @@ -55,6 +81,7 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate { .replace(".", "_") val file = File(librariesOutputDir, fileName + ".xml") file.writeText(joinToString("\n")) + log(1, "Created $file") } }