From e043cb569099c9f2065b23e3af6c9461e96be9c3 Mon Sep 17 00:00:00 2001 From: Syer10 Date: Sat, 3 Apr 2021 18:12:01 -0400 Subject: [PATCH] Use properties to set rootDir so that ConfigManager can use it --- .../xyz/nulldev/ts/config/ConfigManager.kt | 10 ++---- .../ir/armor/tachidesk/server/ServerSetup.kt | 11 +++++-- .../ir/armor/tachidesk/TestExtensions.kt | 2 +- .../kotlin/ir/armor/tachidesk/TestUtils.kt | 32 ------------------- 4 files changed, 12 insertions(+), 43 deletions(-) diff --git a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt index 59a43c1a..c22d7d49 100644 --- a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt +++ b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt @@ -18,8 +18,6 @@ import java.io.File * Manages app config. */ open class ConfigManager { - private val dataRoot by lazy { AppDirsFactory.getInstance().getUserDataDir("Tachidesk", null, null)!! } - private val generatedModules = mutableMapOf, ConfigModule>() val config by lazy { loadConfigs() } @@ -27,8 +25,6 @@ open class ConfigManager { val loadedModules: Map, ConfigModule> get() = generatedModules - open val appConfigFile: String = "$dataRoot/server.conf" - val logger = KotlinLogging.logger {} /** @@ -51,8 +47,8 @@ open class ConfigManager { //Load user config val userConfig = - File(appConfigFile).let{ - ConfigFactory.parseFile(it) + File(System.getProperty("ir.armor.tachidesk.rootDir"), "server.conf").let { + ConfigFactory.parseFile(it) } val config = ConfigFactory.empty() @@ -69,7 +65,7 @@ open class ConfigManager { } fun registerModule(module: ConfigModule) { - generatedModules.put(module.javaClass, module) + generatedModules[module.javaClass] = module } fun registerModules(vararg modules: ConfigModule) { diff --git a/server/src/main/kotlin/ir/armor/tachidesk/server/ServerSetup.kt b/server/src/main/kotlin/ir/armor/tachidesk/server/ServerSetup.kt index 49567428..935eec64 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/server/ServerSetup.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/server/ServerSetup.kt @@ -37,19 +37,21 @@ class ApplicationDirs( val mangaRoot = "$dataRoot/manga" } -val serverConfig: ServerConfig by DI.global.instance() +val serverConfig: ServerConfig by lazy { GlobalConfigManager.module() } val systemTray by lazy { systemTray() } val androidCompat by lazy { AndroidCompat() } -fun applicationSetup(rootDir: String? = null, config: Config = GlobalConfigManager.config) { +fun applicationSetup(rootDir: String? = null) { val dirs = if (rootDir != null) { ApplicationDirs(rootDir) } else { ApplicationDirs() } + System.setProperty("ir.armor.tachidesk.rootDir", dirs.dataRoot) + // make dirs we need listOf( dirs.dataRoot, @@ -60,10 +62,13 @@ fun applicationSetup(rootDir: String? = null, config: Config = GlobalConfigManag File(it).mkdirs() } + GlobalConfigManager.registerModule( + ServerConfig.register(GlobalConfigManager.config) + ) + // Application dirs DI.global.addImport(DI.Module("Server") { bind() with singleton { dirs } - bind() with singleton { ServerConfig.register(config) } }) // Load config API DI.global.addImport(ConfigKodeinModule().create()) diff --git a/server/src/test/kotlin/ir/armor/tachidesk/TestExtensions.kt b/server/src/test/kotlin/ir/armor/tachidesk/TestExtensions.kt index 000ad356..574bb9dd 100644 --- a/server/src/test/kotlin/ir/armor/tachidesk/TestExtensions.kt +++ b/server/src/test/kotlin/ir/armor/tachidesk/TestExtensions.kt @@ -41,7 +41,7 @@ class TestExtensions { @BeforeAll fun setup() { val dataRoot = File("tmp/TestDesk").absolutePath - applicationSetup(dataRoot, loadConfigs(dataRoot)) + applicationSetup(dataRoot) setLoggingEnabled(false) runBlocking { extensions = getExtensionList() diff --git a/server/src/test/kotlin/ir/armor/tachidesk/TestUtils.kt b/server/src/test/kotlin/ir/armor/tachidesk/TestUtils.kt index dab9e378..685a6ff0 100644 --- a/server/src/test/kotlin/ir/armor/tachidesk/TestUtils.kt +++ b/server/src/test/kotlin/ir/armor/tachidesk/TestUtils.kt @@ -1,40 +1,8 @@ package ir.armor.tachidesk import ch.qos.logback.classic.Level -import com.typesafe.config.Config -import com.typesafe.config.ConfigFactory -import com.typesafe.config.ConfigRenderOptions import mu.KotlinLogging import org.slf4j.Logger -import java.io.File - -/** - * Load configs - */ -fun loadConfigs(dataRoot: String): Config { - val logger = KotlinLogging.logger {} - //Load reference configs - val compatConfig = ConfigFactory.parseResources("compat-reference.conf") - val serverConfig = ConfigFactory.parseResources("server-reference.conf") - - //Load user config - val userConfig = - File(dataRoot, "server.conf").let { - ConfigFactory.parseFile(it) - } - - val config = ConfigFactory.empty() - .withFallback(userConfig) - .withFallback(compatConfig) - .withFallback(serverConfig) - .resolve() - - logger.debug { - "Loaded config:\n" + config.root().render(ConfigRenderOptions.concise().setFormatted(true)) - } - - return config -} fun setLoggingEnabled(enabled: Boolean = true) { val logger = (KotlinLogging.logger(Logger.ROOT_LOGGER_NAME).underlyingLogger as ch.qos.logback.classic.Logger)