mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 11:24:35 -05:00
Better way of setting it maybe?
This commit is contained in:
@@ -11,7 +11,6 @@ import com.typesafe.config.Config
|
|||||||
import com.typesafe.config.ConfigFactory
|
import com.typesafe.config.ConfigFactory
|
||||||
import com.typesafe.config.ConfigRenderOptions
|
import com.typesafe.config.ConfigRenderOptions
|
||||||
import mu.KotlinLogging
|
import mu.KotlinLogging
|
||||||
import net.harawata.appdirs.AppDirsFactory
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,7 +46,7 @@ open class ConfigManager {
|
|||||||
|
|
||||||
//Load user config
|
//Load user config
|
||||||
val userConfig =
|
val userConfig =
|
||||||
File(System.getProperty("ir.armor.tachidesk.rootDir"), "server.conf").let {
|
File(tachideskRootDir(), "server.conf").let {
|
||||||
ConfigFactory.parseFile(it)
|
ConfigFactory.parseFile(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package xyz.nulldev.ts.config
|
||||||
|
|
||||||
|
import net.harawata.appdirs.AppDirsFactory
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
fun tachideskRootDir(): String {
|
||||||
|
return System.getProperty(
|
||||||
|
"ir.armor.tachidesk.rootDir",
|
||||||
|
AppDirsFactory.getInstance().getUserDataDir("Tachidesk", null, null)
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -8,29 +8,27 @@ package ir.armor.tachidesk.server
|
|||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
import ch.qos.logback.classic.Level
|
import ch.qos.logback.classic.Level
|
||||||
import com.typesafe.config.Config
|
|
||||||
import eu.kanade.tachiyomi.App
|
import eu.kanade.tachiyomi.App
|
||||||
import ir.armor.tachidesk.Main
|
import ir.armor.tachidesk.Main
|
||||||
import ir.armor.tachidesk.model.dataclass.makeDataBaseTables
|
import ir.armor.tachidesk.model.dataclass.makeDataBaseTables
|
||||||
import ir.armor.tachidesk.server.util.systemTray
|
import ir.armor.tachidesk.server.util.systemTray
|
||||||
import mu.KotlinLogging
|
import mu.KotlinLogging
|
||||||
import net.harawata.appdirs.AppDirsFactory
|
|
||||||
import org.kodein.di.DI
|
import org.kodein.di.DI
|
||||||
import org.kodein.di.bind
|
import org.kodein.di.bind
|
||||||
import org.kodein.di.conf.global
|
import org.kodein.di.conf.global
|
||||||
import org.kodein.di.instance
|
|
||||||
import org.kodein.di.singleton
|
import org.kodein.di.singleton
|
||||||
import org.slf4j.Logger
|
import org.slf4j.Logger
|
||||||
import xyz.nulldev.androidcompat.AndroidCompat
|
import xyz.nulldev.androidcompat.AndroidCompat
|
||||||
import xyz.nulldev.androidcompat.AndroidCompatInitializer
|
import xyz.nulldev.androidcompat.AndroidCompatInitializer
|
||||||
import xyz.nulldev.ts.config.ConfigKodeinModule
|
import xyz.nulldev.ts.config.ConfigKodeinModule
|
||||||
import xyz.nulldev.ts.config.GlobalConfigManager
|
import xyz.nulldev.ts.config.GlobalConfigManager
|
||||||
|
import xyz.nulldev.ts.config.tachideskRootDir
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
private val logger = KotlinLogging.logger {}
|
private val logger = KotlinLogging.logger {}
|
||||||
|
|
||||||
class ApplicationDirs(
|
class ApplicationDirs(
|
||||||
val dataRoot: String = AppDirsFactory.getInstance().getUserDataDir("Tachidesk", null, null)
|
val dataRoot: String = tachideskRootDir()
|
||||||
) {
|
) {
|
||||||
val extensionsRoot = "$dataRoot/extensions"
|
val extensionsRoot = "$dataRoot/extensions"
|
||||||
val thumbnailsRoot = "$dataRoot/thumbnails"
|
val thumbnailsRoot = "$dataRoot/thumbnails"
|
||||||
@@ -44,21 +42,18 @@ val systemTray by lazy { systemTray() }
|
|||||||
val androidCompat by lazy { AndroidCompat() }
|
val androidCompat by lazy { AndroidCompat() }
|
||||||
|
|
||||||
fun applicationSetup() {
|
fun applicationSetup() {
|
||||||
val rootDir: String? = System.getProperty("ir.armor.tachidesk.rootDir")
|
// Application dirs
|
||||||
val dirs = if (rootDir != null) {
|
val applicationDirs = ApplicationDirs()
|
||||||
ApplicationDirs(rootDir)
|
DI.global.addImport(DI.Module("Server") {
|
||||||
} else {
|
bind<ApplicationDirs>() with singleton { applicationDirs }
|
||||||
ApplicationDirs().also {
|
})
|
||||||
System.setProperty("ir.armor.tachidesk.rootDir", it.dataRoot)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// make dirs we need
|
// make dirs we need
|
||||||
listOf(
|
listOf(
|
||||||
dirs.dataRoot,
|
applicationDirs.dataRoot,
|
||||||
dirs.extensionsRoot,
|
applicationDirs.extensionsRoot,
|
||||||
dirs.extensionsRoot + "/icon",
|
applicationDirs.extensionsRoot + "/icon",
|
||||||
dirs.thumbnailsRoot
|
applicationDirs.thumbnailsRoot
|
||||||
).forEach {
|
).forEach {
|
||||||
File(it).mkdirs()
|
File(it).mkdirs()
|
||||||
}
|
}
|
||||||
@@ -67,10 +62,6 @@ fun applicationSetup() {
|
|||||||
ServerConfig.register(GlobalConfigManager.config)
|
ServerConfig.register(GlobalConfigManager.config)
|
||||||
)
|
)
|
||||||
|
|
||||||
// Application dirs
|
|
||||||
DI.global.addImport(DI.Module("Server") {
|
|
||||||
bind<ApplicationDirs>() with singleton { dirs }
|
|
||||||
})
|
|
||||||
// Load config API
|
// Load config API
|
||||||
DI.global.addImport(ConfigKodeinModule().create())
|
DI.global.addImport(ConfigKodeinModule().create())
|
||||||
// Load Android compatibility dependencies
|
// Load Android compatibility dependencies
|
||||||
@@ -85,7 +76,7 @@ fun applicationSetup() {
|
|||||||
|
|
||||||
// create conf file if doesn't exist
|
// create conf file if doesn't exist
|
||||||
try {
|
try {
|
||||||
val dataConfFile = File("${dirs.dataRoot}/server.conf")
|
val dataConfFile = File("${applicationDirs.dataRoot}/server.conf")
|
||||||
if (!dataConfFile.exists()) {
|
if (!dataConfFile.exists()) {
|
||||||
Main::class.java.getResourceAsStream("/server-reference.conf").use { input ->
|
Main::class.java.getResourceAsStream("/server-reference.conf").use { input ->
|
||||||
dataConfFile.outputStream().use { output ->
|
dataConfFile.outputStream().use { output ->
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ class TestExtensions {
|
|||||||
System.setProperty("ir.armor.tachidesk.rootDir", dataRoot)
|
System.setProperty("ir.armor.tachidesk.rootDir", dataRoot)
|
||||||
applicationSetup()
|
applicationSetup()
|
||||||
setLoggingEnabled(false)
|
setLoggingEnabled(false)
|
||||||
|
|
||||||
runBlocking {
|
runBlocking {
|
||||||
extensions = getExtensionList()
|
extensions = getExtensionList()
|
||||||
extensions.forEach {
|
extensions.forEach {
|
||||||
|
|||||||
Reference in New Issue
Block a user