From 226f0482ee3efd72267765a12ddbb8a83d1ca224 Mon Sep 17 00:00:00 2001 From: Bruce0203 Date: Fri, 4 Aug 2023 17:08:34 +0900 Subject: [PATCH] init --- .../application/configuration/shutdown.kt | 19 +++++++++++++++++++ server/src/main/kotlin/application/main.kt | 6 ++++++ 2 files changed, 25 insertions(+) create mode 100644 server/src/main/kotlin/application/configuration/shutdown.kt diff --git a/server/src/main/kotlin/application/configuration/shutdown.kt b/server/src/main/kotlin/application/configuration/shutdown.kt new file mode 100644 index 0000000..9670009 --- /dev/null +++ b/server/src/main/kotlin/application/configuration/shutdown.kt @@ -0,0 +1,19 @@ +package application.configuration + +import io.ktor.server.application.* +import io.ktor.server.auth.* +import io.ktor.server.engine.* +import io.ktor.server.routing.* + +fun Application.configurationShutdown() { + val shutdown = ShutDownUrl("") { 0 } + routing { + post("shutdown") { + val key = System.getenv("ADMIN_KEY") + if (key.isEmpty()) return@post + if (call.parameters["key"] == key) { + shutdown.doShutdown(call) + } + } + } +} \ No newline at end of file diff --git a/server/src/main/kotlin/application/main.kt b/server/src/main/kotlin/application/main.kt index f5680c2..3946ea7 100644 --- a/server/src/main/kotlin/application/main.kt +++ b/server/src/main/kotlin/application/main.kt @@ -1,5 +1,6 @@ package application +import application.configuration.configurationShutdown import application.configuration.configureAuthentication import application.configuration.configureDatabase import application.configuration.environment @@ -42,9 +43,14 @@ fun Application.module() { install(ContentNegotiation) { json() } + install(ShutDownUrl.ApplicationCallPlugin) { + shutDownUrl = "/shutdown" + exitCodeSupplier = { 0 } + } routing { staticResources("/", "/") } + configurationShutdown() configureDatabase() configureAuthentication() configureRooms()