From 27ca664829adb55f41321bc397df972e52f4e824 Mon Sep 17 00:00:00 2001 From: xeon Date: Thu, 30 May 2024 21:38:05 +0300 Subject: [PATCH] wait for user input before crash after init_assets() error --- gameserver/src/main.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gameserver/src/main.rs b/gameserver/src/main.rs index 7bfad02..6195924 100644 --- a/gameserver/src/main.rs +++ b/gameserver/src/main.rs @@ -1,3 +1,5 @@ +use std::io::{stdin, Read}; + use anyhow::Result; use tracing::Level; @@ -15,7 +17,10 @@ use logging::{init_logging, init_system_logging}; async fn main() -> Result<()> { init_logging(); init_config(); - init_assets()?; + if let Err(err) = init_assets() { + tracing::error!("Error occurred during assets initialization: {err}"); + on_critical_fault(); + } let span = tracing::span!(Level::DEBUG, "main"); let _enter = span.enter(); @@ -26,3 +31,10 @@ async fn main() -> Result<()> { net::gateway::listen(&CONFIGURATION.gateway_endpoint).await } + +fn on_critical_fault() { + eprintln!("Critical error occurred, press any key to exit..."); + + let _ = stdin().read(&mut [0u8]).unwrap(); + std::process::exit(1); +}