simplify env

This commit is contained in:
Michal Humpula
2026-03-01 08:20:24 +01:00
parent 3a289ecff2
commit e2e68c8e81

View File

@@ -54,6 +54,18 @@ struct Config {
failback_delay: u64,
}
fn apply_env_overrides(mut config: Config) -> Config {
config.primary_interface =
std::env::var("PRIMARY_INTERFACE").unwrap_or(config.primary_interface);
config.secondary_interface =
std::env::var("SECONDARY_INTERFACE").unwrap_or(config.secondary_interface);
config.primary_gateway = std::env::var("PRIMARY_GATEWAY").unwrap_or(config.primary_gateway);
config.secondary_gateway =
std::env::var("SECONDARY_GATEWAY").unwrap_or(config.secondary_gateway);
config.ping_target = std::env::var("PING_TARGET").unwrap_or(config.ping_target);
config
}
#[tokio::main]
async fn main() -> Result<()> {
let env = Env::default().filter_or("RUST_LOG", "info");
@@ -64,22 +76,7 @@ async fn main() -> Result<()> {
let config = Config::parse();
// Override with environment variables if present
let primary_interface =
std::env::var("PRIMARY_INTERFACE").unwrap_or(config.primary_interface.clone());
let secondary_interface =
std::env::var("SECONDARY_INTERFACE").unwrap_or(config.secondary_interface.clone());
let primary_gateway =
std::env::var("PRIMARY_GATEWAY").unwrap_or(config.primary_gateway.clone());
let secondary_gateway =
std::env::var("SECONDARY_GATEWAY").unwrap_or(config.secondary_gateway.clone());
let ping_target = std::env::var("PING_TARGET").unwrap_or(config.ping_target.clone());
let mut config_with_env = config;
config_with_env.primary_interface = primary_interface;
config_with_env.secondary_interface = secondary_interface;
config_with_env.primary_gateway = primary_gateway;
config_with_env.secondary_gateway = secondary_gateway;
config_with_env.ping_target = ping_target;
let config_with_env = apply_env_overrides(config);
debug!("Configuration: {:?}", config_with_env);