diff --git a/src/main/kotlin/starter/KotlinStarter.kt b/src/main/kotlin/starter/KotlinStarter.kt index 9b3c774..44f9494 100644 --- a/src/main/kotlin/starter/KotlinStarter.kt +++ b/src/main/kotlin/starter/KotlinStarter.kt @@ -1,20 +1,28 @@ package starter import org.koin.core.context.startKoin +import org.koin.dsl.bind import org.koin.dsl.module +import starter.templates.MainTemplate +import starter.templates.PomTemplate +import starter.templates.Template -val module = module { +val mainModule = module { single { Config().load() } single { PebbleModule().engine() } single { Server(get(), get(), get()) } - single { Templates(get()) } single { Views(get()) } - single { ProjectZip(get()) } + single { ProjectZip(getAll()) } +} + +val templateModule = module { + single { PomTemplate(get()) } bind Template::class + single { MainTemplate(get()) } bind Template::class } fun main() { val koin = startKoin { - modules(module) + modules(mainModule, templateModule) }.koin val server = koin.get() server.run() diff --git a/src/main/kotlin/starter/Models.kt b/src/main/kotlin/starter/Models.kt index 3ac1711..672c6a7 100644 --- a/src/main/kotlin/starter/Models.kt +++ b/src/main/kotlin/starter/Models.kt @@ -20,4 +20,9 @@ data class Dependency( data class Input(val name: String, val display: String, val value: String? = null) -data class Project(val name: String, val basePackage: String) \ No newline at end of file +data class Project( + val name: String, + val basePackage: String, + val inputs: List, + val dependencies: List, +) diff --git a/src/main/kotlin/starter/ProjectZip.kt b/src/main/kotlin/starter/ProjectZip.kt index 4e23396..9a2db33 100644 --- a/src/main/kotlin/starter/ProjectZip.kt +++ b/src/main/kotlin/starter/ProjectZip.kt @@ -1,23 +1,23 @@ package starter +import starter.templates.Template import starter.utils.ZipOutput -import starter.utils.prettyPrintXml import starter.utils.sanitizeFilename -class ProjectZip(private val templates: Templates) { - - fun createZip(project: Project, inputs: List, dependencies: List): String { - val pom = templates.pom(dependencies, inputs) - val prettyPom = prettyPrintXml(pom) +class ProjectZip(private val templates: List