diff --git a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt index 3e2656c4..d60eb6ea 100644 --- a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt +++ b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt @@ -14,8 +14,13 @@ import kotlin.reflect.KProperty /** * Abstract config module. */ -abstract class ConfigModule(config: Config, moduleName: String = "") { - val overridableWithSysProperty = SystemPropertyOverrideDelegate(config, moduleName) +abstract class ConfigModule(config: Config) + +/** + * Abstract jvm-commandline-argument-overridable config module. + */ +abstract class SystemPropertyOverridableConfigModule(config: Config, moduleName: String): ConfigModule(config) { + val overridableConfig = SystemPropertyOverrideDelegate(config, moduleName) } /** Defines a config property that is overridable with jvm `-D` commandline arguments prefixed with [CONFIG_PREFIX] */ diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerConfig.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/ServerConfig.kt index 29384df2..a0c02506 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerConfig.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/ServerConfig.kt @@ -8,30 +8,30 @@ package suwayomi.tachidesk.server * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import com.typesafe.config.Config -import xyz.nulldev.ts.config.ConfigModule import xyz.nulldev.ts.config.GlobalConfigManager +import xyz.nulldev.ts.config.SystemPropertyOverridableConfigModule import xyz.nulldev.ts.config.debugLogsEnabled private const val MODULE_NAME = "server" -class ServerConfig(config: Config, moduleName: String = MODULE_NAME) : ConfigModule(config, moduleName) { - val ip: String by overridableWithSysProperty - val port: Int by overridableWithSysProperty +class ServerConfig(config: Config, moduleName: String = MODULE_NAME) : SystemPropertyOverridableConfigModule(config, moduleName) { + val ip: String by overridableConfig + val port: Int by overridableConfig // proxy - val socksProxyEnabled: Boolean by overridableWithSysProperty + val socksProxyEnabled: Boolean by overridableConfig - val socksProxyHost: String by overridableWithSysProperty - val socksProxyPort: String by overridableWithSysProperty + val socksProxyHost: String by overridableConfig + val socksProxyPort: String by overridableConfig // misc val debugLogsEnabled: Boolean = debugLogsEnabled(GlobalConfigManager.config) - val systemTrayEnabled: Boolean by overridableWithSysProperty + val systemTrayEnabled: Boolean by overridableConfig // webUI - val webUIEnabled: Boolean by overridableWithSysProperty - val initialOpenInBrowserEnabled: Boolean by overridableWithSysProperty - val webUIInterface: String by overridableWithSysProperty - val electronPath: String by overridableWithSysProperty + val webUIEnabled: Boolean by overridableConfig + val initialOpenInBrowserEnabled: Boolean by overridableConfig + val webUIInterface: String by overridableConfig + val electronPath: String by overridableConfig companion object { fun register(config: Config) = ServerConfig(config.getConfig(MODULE_NAME))