Add logback config
This commit is contained in:
@@ -20,6 +20,7 @@ class Config {
|
||||
values.getOrElse("default", false),
|
||||
values.getEnumOrElse("category", Category.Other),
|
||||
values.getEnumOrElse("scope", Scope.Compile),
|
||||
values["logger"],
|
||||
)
|
||||
}
|
||||
|
||||
@@ -32,4 +33,4 @@ class Config {
|
||||
return StarterConfig(dependencies, inputs)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package starter
|
||||
import org.koin.core.context.startKoin
|
||||
import org.koin.dsl.bind
|
||||
import org.koin.dsl.module
|
||||
import starter.templates.LogbackTemplate
|
||||
import starter.templates.MainTemplate
|
||||
import starter.templates.PomTemplate
|
||||
import starter.templates.Template
|
||||
@@ -18,6 +19,7 @@ val mainModule = module {
|
||||
val templateModule = module {
|
||||
single { PomTemplate(get()) } bind Template::class
|
||||
single { MainTemplate(get()) } bind Template::class
|
||||
single { LogbackTemplate(get()) } bind Template::class
|
||||
}
|
||||
|
||||
fun main() {
|
||||
|
||||
@@ -15,7 +15,8 @@ data class Dependency(
|
||||
val version: String,
|
||||
val default: Boolean,
|
||||
val category: Category,
|
||||
val scope: Scope
|
||||
val scope: Scope,
|
||||
val logger: String?,
|
||||
)
|
||||
|
||||
data class Input(val name: String, val display: String, val value: String? = null)
|
||||
|
||||
@@ -9,11 +9,11 @@ class ProjectZip(private val templates: List<Template>) {
|
||||
fun createZip(project: Project): String {
|
||||
val name: String
|
||||
|
||||
ZipOutput(sanitizeFilename(project.name)).use {
|
||||
name = it.name
|
||||
ZipOutput(sanitizeFilename(project.name)).use { zip ->
|
||||
name = zip.name
|
||||
|
||||
templates.forEach { template ->
|
||||
it.write(template.path(project), template.render(project))
|
||||
templates.filter { it.enabled(project) }.forEach { template ->
|
||||
zip.write(template.path(project), template.render(project))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package starter.templates
|
||||
|
||||
import com.mitchellbosecke.pebble.PebbleEngine
|
||||
import starter.Project
|
||||
import starter.utils.prettyPrintXml
|
||||
import starter.utils.render
|
||||
|
||||
class LogbackTemplate(private val engine: PebbleEngine) : Template {
|
||||
override fun path(project: Project) = "src/main/resources/logback.xml"
|
||||
|
||||
override fun enabled(project: Project) = project.dependencies.any { it.name == "logback" }
|
||||
|
||||
override fun render(project: Project): String {
|
||||
val args = mapOf(
|
||||
"loggers" to project.dependencies.mapNotNull { it.logger }.toSet()
|
||||
)
|
||||
val rendered = engine.render("starter/logback/logback", args)
|
||||
return prettyPrintXml(rendered)
|
||||
}
|
||||
}
|
||||
@@ -4,5 +4,6 @@ import starter.Project
|
||||
|
||||
interface Template {
|
||||
fun path(project: Project): String
|
||||
fun enabled(project: Project): Boolean = true
|
||||
fun render(project: Project): String
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user