From dfa1d3ec9ba1cf9eeb96b229d2895524ae204c0c Mon Sep 17 00:00:00 2001 From: Patrick 'Quezler' Mounier Date: Sun, 22 Dec 2024 14:46:42 +0100 Subject: [PATCH 1/3] Try to keep the previous log after a restart --- .../bloodworkxgaming/serverstarter/LoaderManager.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt b/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt index 795a3d6..c699d71 100644 --- a/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt +++ b/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt @@ -298,8 +298,19 @@ class LoaderManager(private val configFile: ConfigFile, private val internetMana .replace("{{@mcversion@}}", lockFile.mcVersion) .replace("{{@os@}}", if (OSUtil.isWindows) "win" else "unix") + private fun tryToCopyLatestLogToPreviousLog() { + val basepath = configFile.install.baseInstallPath; + val logDirectory = File(basepath + "logs") + if (logDirectory.exists()) { + val latestLog = File(basepath + "logs/latest.log") + if (latestLog.exists()) { + latestLog.copyTo(File(basepath + "logs/previous.log")) + } + } + } private fun startAndWaitForProcess(args: List) { + tryToCopyLatestLogToPreviousLog() ProcessBuilder(args).apply { inheritIO() directory(File(configFile.install.baseInstallPath + ".")) From bf8324caa6152972f6dba685a354fcbdec92c4a9 Mon Sep 17 00:00:00 2001 From: Patrick 'Quezler' Mounier Date: Sun, 22 Dec 2024 15:37:46 +0100 Subject: [PATCH 2/3] Fix copy failing if the destination already exists --- .../atm/bloodworkxgaming/serverstarter/LoaderManager.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt b/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt index c699d71..7ebf841 100644 --- a/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt +++ b/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt @@ -304,6 +304,10 @@ class LoaderManager(private val configFile: ConfigFile, private val internetMana if (logDirectory.exists()) { val latestLog = File(basepath + "logs/latest.log") if (latestLog.exists()) { + val previousLog = File(basepath + "logs/previous.log") + if (previousLog.exists()) { + previousLog.delete(); + } latestLog.copyTo(File(basepath + "logs/previous.log")) } } From c45ba70f24541f30f0e7917e6ef7df58998d61da Mon Sep 17 00:00:00 2001 From: Patrick 'Quezler' Mounier Date: Sun, 22 Dec 2024 18:16:15 +0100 Subject: [PATCH 3/3] Switch from nested if's to guard clauses --- .../serverstarter/LoaderManager.kt | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt b/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt index 7ebf841..399bc56 100644 --- a/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt +++ b/src/main/kotlin/atm/bloodworkxgaming/serverstarter/LoaderManager.kt @@ -299,18 +299,21 @@ class LoaderManager(private val configFile: ConfigFile, private val internetMana .replace("{{@os@}}", if (OSUtil.isWindows) "win" else "unix") private fun tryToCopyLatestLogToPreviousLog() { - val basepath = configFile.install.baseInstallPath; + val basepath = configFile.install.baseInstallPath + val logDirectory = File(basepath + "logs") - if (logDirectory.exists()) { - val latestLog = File(basepath + "logs/latest.log") - if (latestLog.exists()) { - val previousLog = File(basepath + "logs/previous.log") - if (previousLog.exists()) { - previousLog.delete(); - } - latestLog.copyTo(File(basepath + "logs/previous.log")) - } - } + if (!logDirectory.exists()) + return + + val latestLog = File(basepath + "logs/latest.log") + if (!latestLog.exists()) + return + + val previousLog = File(basepath + "logs/previous.log") + if (previousLog.exists()) + previousLog.delete() + + latestLog.copyTo(previousLog) } private fun startAndWaitForProcess(args: List) {