simplify env
This commit is contained in:
29
src/main.rs
29
src/main.rs
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user