diff --git a/src/main.rs b/src/main.rs index a02ef16..dd454fe 100644 --- a/src/main.rs +++ b/src/main.rs @@ -91,21 +91,22 @@ async fn get_data_stores( async fn main() -> Result<()> { let args = Args::parse(); + let parse_config = || { + Figment::new() + .merge(Toml::file(&args.config_file)) + .merge(Env::prefixed("RUSTICAL_").split("__")) + .extract() + }; + match args.command { Some(Command::GenConfig(gen_config_args)) => cmd_gen_config(gen_config_args)?, Some(Command::Principals(principals_args)) => cmd_principals(principals_args).await?, Some(Command::Health(health_args)) => { - let config: Config = Figment::new() - .merge(Toml::file(&args.config_file)) - .merge(Env::prefixed("RUSTICAL_").split("__")) - .extract()?; + let config: Config = parse_config()?; cmd_health(config.http, health_args).await?; } None => { - let config: Config = Figment::new() - .merge(Toml::file(&args.config_file)) - .merge(Env::prefixed("RUSTICAL_").split("__")) - .extract()?; + let config: Config = parse_config()?; setup_tracing(&config.tracing);