diff --git a/frontend/mirai-console-terminal/.gitignore b/frontend/mirai-console-terminal/.gitignore new file mode 100644 index 000000000..f35003d5a --- /dev/null +++ b/frontend/mirai-console-terminal/.gitignore @@ -0,0 +1 @@ +/run \ No newline at end of file diff --git a/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt b/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt index 4501c1af6..8708e197a 100644 --- a/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt +++ b/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt @@ -57,7 +57,7 @@ import java.nio.file.Paths @ConsoleExperimentalApi class MiraiConsoleImplementationTerminal @JvmOverloads constructor( - override val rootPath: Path = Paths.get(".").toAbsolutePath(), + override val rootPath: Path = Paths.get(System.getProperty("user.dir", ".")).toAbsolutePath(), override val builtInPluginLoaders: List>> = listOf(lazy { JvmPluginLoader }), override val frontEndDescription: MiraiConsoleFrontEndDescription = ConsoleFrontEndDescImpl, override val consoleCommandSender: MiraiConsoleImplementation.ConsoleCommandSenderImpl = ConsoleCommandSenderImplTerminal, diff --git a/frontend/mirai-console-terminal/test/RunTerminal.kt b/frontend/mirai-console-terminal/test/RunTerminal.kt new file mode 100644 index 000000000..901433db3 --- /dev/null +++ b/frontend/mirai-console-terminal/test/RunTerminal.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + +package net.mamoe.mirai.console.terminal + +import kotlinx.coroutines.runBlocking +import net.mamoe.mirai.console.MiraiConsole +import java.io.File + +fun main() { + configureUserDir() + + MiraiConsoleTerminalLoader.startAsDaemon() + runCatching { runBlocking { MiraiConsole.job.join() } } +} + +internal fun configureUserDir() { + val projectDir = runCatching { + File(".").resolve("frontend").resolve("mirai-console-terminal") + }.getOrElse { return } + if (projectDir.isDirectory) { + val run = projectDir.resolve("run") + run.mkdir() + System.setProperty("user.dir", run.absolutePath) + println("[Mirai Console] Set user.dir = ${run.absolutePath}") + } +} \ No newline at end of file