1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-27 00:38:11 -07:00

Fix --idea files.

This commit is contained in:
Cedric Beust 2016-02-22 20:43:40 -08:00
parent 1bc3b0cad8
commit a4fae5a145

View file

@ -1,10 +1,10 @@
package com.beust.kobalt.app package com.beust.kobalt.app
import com.beust.kobalt.Args import com.beust.kobalt.Args
import com.beust.kobalt.Constants
import com.beust.kobalt.api.ITemplate import com.beust.kobalt.api.ITemplate
import com.beust.kobalt.api.Kobalt import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.app.remote.DependencyData import com.beust.kobalt.app.remote.DependencyData
import com.beust.kobalt.homeDir
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.log import com.beust.kobalt.misc.log
import com.beust.kobalt.plugin.KobaltPlugin import com.beust.kobalt.plugin.KobaltPlugin
@ -21,10 +21,14 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate {
override val instructions = "IDEA files generated" override val instructions = "IDEA files generated"
companion object {
val IDEA_DIR = ".idea"
}
override fun generateTemplate(args: Args, classLoader: ClassLoader) { override fun generateTemplate(args: Args, classLoader: ClassLoader) {
val dependencyData = Kobalt.INJECTOR.getInstance(DependencyData::class.java) val dependencyData = Kobalt.INJECTOR.getInstance(DependencyData::class.java)
val data = dependencyData.dependenciesDataFor(homeDir("kotlin/kobalt/kobalt/src/Build.kt"), args) val data = dependencyData.dependenciesDataFor(Constants.BUILD_FILE_PATH, args)
val outputDir = KFiles.makeDir(homeDir("t/idea")) val outputDir = KFiles.makeDir(".")//KFiles.makeDir(homeDir("t/idea"))
generateLibraries(data, outputDir) generateLibraries(data, outputDir)
generateModulesXml(data, outputDir) generateModulesXml(data, outputDir)
generateImlFiles(data, outputDir) generateImlFiles(data, outputDir)
@ -32,7 +36,7 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate {
private fun generateImlFiles(data: DependencyData.GetDependenciesData, outputDir: File) { private fun generateImlFiles(data: DependencyData.GetDependenciesData, outputDir: File) {
data.projects.forEach { project -> data.projects.forEach { project ->
val dir = KFiles.makeDir(outputDir.absolutePath, File(imlName(project)).parent) KFiles.makeDir(outputDir.absolutePath, File(imlName(project)).parent)
val file = File(KFiles.joinDir(outputDir.path, imlName(project))) val file = File(KFiles.joinDir(outputDir.path, imlName(project)))
with(arrayListOf<String>()) { with(arrayListOf<String>()) {
add("""<?xml version="1.0" encoding="UTF-8"?>""") add("""<?xml version="1.0" encoding="UTF-8"?>""")
@ -80,8 +84,7 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate {
add(" </component>") add(" </component>")
add("</module>") add("</module>")
file.writeText(joinToString("\n")) writeFile(this, file)
log(2, "Created $file")
} }
} }
@ -91,7 +94,7 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate {
KFiles.joinDir(project.directory, project.name + ".iml") KFiles.joinDir(project.directory, project.name + ".iml")
private fun generateModulesXml(data: DependencyData.GetDependenciesData, outputDir: File) { private fun generateModulesXml(data: DependencyData.GetDependenciesData, outputDir: File) {
val modulesXmlFile = File(outputDir, "modules.xml") val modulesXmlFile = File(KFiles.joinDir(IDEA_DIR, outputDir.path, "modules.xml"))
with(arrayListOf<String>()) { with(arrayListOf<String>()) {
add("""<?xml version="1.0" encoding="UTF-8"?>""") add("""<?xml version="1.0" encoding="UTF-8"?>""")
add("""<project version="4">""") add("""<project version="4">""")
@ -110,8 +113,7 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate {
add(" </modules>") add(" </modules>")
add(" </component>") add(" </component>")
add("</project>") add("</project>")
modulesXmlFile.writeText(joinToString("\n")) writeFile(this, modulesXmlFile)
log(2, "Created $modulesXmlFile")
} }
} }
@ -143,9 +145,7 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate {
add("</component>") add("</component>")
val fileName = libraryName.replace(" ", "_").replace("-", "_").replace("(", "_").replace(")", "_") val fileName = libraryName.replace(" ", "_").replace("-", "_").replace("(", "_").replace(")", "_")
.replace(".", "_") .replace(".", "_")
val file = File(librariesOutputDir, fileName + ".xml") writeFile(this, File(KFiles.joinDir(IDEA_DIR, librariesOutputDir.path, fileName + ".xml")))
file.writeText(joinToString("\n"))
log(2, "Created $file")
} }
} }
@ -172,4 +172,8 @@ class IdeaFilesTemplate @Inject constructor() : ITemplate {
} }
} }
private fun writeFile(lines: List<String>, file: File) {
file.writeText(lines.joinToString("\n"))
log(2, "Created ${file.absolutePath}")
}
} }