From 8c4e48e3eb6c268e13b4ed885651795ae43dbdc1 Mon Sep 17 00:00:00 2001 From: LamGC Date: Tue, 12 Jul 2022 00:27:18 +0800 Subject: [PATCH] =?UTF-8?q?refactor(launch):=20=E6=9B=B4=E6=94=B9=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E9=85=8D=E7=BD=AE=E4=B8=AD,=20=E9=80=80?= =?UTF-8?q?=E5=87=BA=E8=BF=9B=E7=A8=8B=E7=9A=84=E6=97=B6=E6=9C=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为了能在单元测试中检查 initialFiles 是否正常, 故将 exitProcess 移到 main 方法中, 方便进行测试. --- scalabot-app/src/main/kotlin/AppConfigs.kt | 11 ++++++++--- scalabot-app/src/main/kotlin/AppMain.kt | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/scalabot-app/src/main/kotlin/AppConfigs.kt b/scalabot-app/src/main/kotlin/AppConfigs.kt index 2626a54..5b6241a 100644 --- a/scalabot-app/src/main/kotlin/AppConfigs.kt +++ b/scalabot-app/src/main/kotlin/AppConfigs.kt @@ -18,7 +18,6 @@ import java.net.URL import java.nio.charset.StandardCharsets import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicInteger -import kotlin.system.exitProcess private val log = KotlinLogging.logger { } @@ -207,7 +206,12 @@ private fun AppPaths.defaultInitializer() { } } -internal fun initialFiles() { +/** + * 执行 AppPaths 所有项目的初始化, 并检查是否停止运行, 让用户编辑配置. + * + * @return 如果需要让用户编辑配置, 则返回 `true`. + */ +internal fun initialFiles(): Boolean { val configFilesNotInitialized = !AppPaths.CONFIG_APPLICATION.file.exists() && !AppPaths.CONFIG_BOT.file.exists() @@ -217,8 +221,9 @@ internal fun initialFiles() { if (configFilesNotInitialized) { log.warn { "配置文件已初始化, 请根据需要修改配置文件后重新启动本程序." } - exitProcess(1) + return true } + return false } internal object GsonConst { diff --git a/scalabot-app/src/main/kotlin/AppMain.kt b/scalabot-app/src/main/kotlin/AppMain.kt index d96fbd4..14b3f63 100644 --- a/scalabot-app/src/main/kotlin/AppMain.kt +++ b/scalabot-app/src/main/kotlin/AppMain.kt @@ -30,7 +30,9 @@ fun main(args: Array): Unit = runBlocking { log.info { "ScalaBot 正在启动中..." } log.info { "数据目录: ${AppPaths.DATA_ROOT}" } log.debug { "启动参数: ${args.joinToString(prefix = "[", postfix = "]")}" } - initialFiles() + if (initialFiles()) { + exitProcess(1) + } val launcher = Launcher() .registerShutdownHook()