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 val mainModule = module { single { Config().load() } single { PebbleModule().engine() } single { Server(get(), get(), get()) } single { Views(get()) } single { ProjectZip(getAll()) } } val templateModule = module { single { PomTemplate(get()) } bind Template::class single { MainTemplate(get()) } bind Template::class single { LogbackTemplate(get()) } bind Template::class } fun main() { val koin = startKoin { modules(mainModule, templateModule) }.koin val server = koin.get() server.run() }