From 45543b20d2749d6a752da14cfda99913e39b4bd4 Mon Sep 17 00:00:00 2001 From: lovasoa Date: Mon, 16 Mar 2026 08:18:04 +0100 Subject: [PATCH] Suppress startup logs for CLI-only invocations --- src/main.rs | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main.rs b/src/main.rs index b75b5ed6..d443a4b7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,18 +7,36 @@ use sqlpage::{ #[actix_web::main] async fn main() { - if let Err(e) = init_logging() { - eprintln!("Failed to initialize logging/telemetry: {e:#}"); - std::process::exit(1); + let cli = match cli::arguments::parse_cli() { + Ok(cli) => cli, + Err(e) => { + eprintln!("{e:#}"); + std::process::exit(1); + } + }; + + let is_server_mode = cli.command.is_none(); + + if is_server_mode { + if let Err(e) = init_logging() { + eprintln!("Failed to initialize logging/telemetry: {e:#}"); + std::process::exit(1); + } + } else { + let _ = dotenvy::dotenv(); } - if let Err(e) = start().await { - log::error!("{e:?}"); + + if let Err(e) = start(cli).await { + if is_server_mode { + log::error!("{e:?}"); + } else { + eprintln!("{e:#}"); + } std::process::exit(1); } } -async fn start() -> anyhow::Result<()> { - let cli = cli::arguments::parse_cli()?; +async fn start(cli: cli::arguments::Cli) -> anyhow::Result<()> { let app_config = AppConfig::from_cli(&cli)?; if let Some(command) = cli.command {