simplify env
This commit is contained in:
29
src/main.rs
29
src/main.rs
@@ -54,6 +54,18 @@ struct Config {
|
|||||||
failback_delay: u64,
|
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]
|
#[tokio::main]
|
||||||
async fn main() -> Result<()> {
|
async fn main() -> Result<()> {
|
||||||
let env = Env::default().filter_or("RUST_LOG", "info");
|
let env = Env::default().filter_or("RUST_LOG", "info");
|
||||||
@@ -64,22 +76,7 @@ async fn main() -> Result<()> {
|
|||||||
let config = Config::parse();
|
let config = Config::parse();
|
||||||
|
|
||||||
// Override with environment variables if present
|
// Override with environment variables if present
|
||||||
let primary_interface =
|
let config_with_env = apply_env_overrides(config);
|
||||||
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;
|
|
||||||
|
|
||||||
debug!("Configuration: {:?}", config_with_env);
|
debug!("Configuration: {:?}", config_with_env);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user