From 285f228660b897df373612a5edf9ccbaea5934d5 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Wed, 24 Jan 2024 23:49:42 +0100 Subject: [PATCH] Gracefully shutdown server in case webUI can't be setup (#850) --- .../kotlin/suwayomi/tachidesk/server/util/AppExit.kt | 1 + .../tachidesk/server/util/WebInterfaceManager.kt | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppExit.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppExit.kt index 871e6a54..41ca249d 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppExit.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppExit.kt @@ -16,6 +16,7 @@ enum class ExitCode(val code: Int) { Success(0), MutexCheckFailedTachideskRunning(1), MutexCheckFailedAnotherAppRunning(2), + WebUISetupFailure(3), } fun shutdownApp(exitCode: ExitCode) { diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt index 77fe1d66..94826a56 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt @@ -47,6 +47,7 @@ import suwayomi.tachidesk.graphql.types.WebUIUpdateStatus import suwayomi.tachidesk.server.ApplicationDirs import suwayomi.tachidesk.server.generated.BuildConfig import suwayomi.tachidesk.server.serverConfig +import suwayomi.tachidesk.server.util.ExitCode.WebUISetupFailure import suwayomi.tachidesk.util.HAScheduler import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -291,7 +292,15 @@ object WebInterfaceManager { } logger.warn { "setupWebUI: no webUI files found, starting download..." } - doInitialSetup() + try { + doInitialSetup() + } catch (e: Exception) { + logger.error(e) { + "Failed to setup the webUI. Unable to start the server with a served webUI, change the settings to start" + + "without one. Stopping the server now..." + } + shutdownApp(WebUISetupFailure) + } } /**