diff --git a/src/config.rs b/src/config.rs index 14d18be..efc0112 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,10 +1,11 @@ use std::env; -use anyhow::{Result, Context, anyhow}; +use anyhow::{Result, Context, Error, anyhow}; use log::*; pub struct DiplonatConfig { pub private_ip: String, pub consul_node_name: String, + pub consul_url: String, pub refresh_time: u32, pub expiration_time: u32 } @@ -14,8 +15,10 @@ pub fn load_env() -> Result { let ert = "DIPLONAT_REFRESH_TIME"; let eet = "DIPLONAT_EXPIRATION_TIME"; let ecnd = "DIPLONAT_CONSUL_NODE_NAME"; + let ecu = "DIPLONAT_CONSUL_URL"; let config = DiplonatConfig { + consul_url: match env::var(ecu) { Ok(e) => e, Err(_) => "http://127.0.0.1:8500".to_string() }, private_ip: env::var(epi) .with_context(|| format!("{} env var must be defined, eg: 192.168.0.18", epi))?, refresh_time: env::var(ert) @@ -34,6 +37,7 @@ pub fn load_env() -> Result { return Err(anyhow!("Expiration time (currently: {}s) must be twice bigger than refresh time (currently: {}s)", config.expiration_time, config.refresh_time)) } + info!("Consul URL: {}", config.consul_url); info!("Consul node name: {}", config.consul_node_name); info!("Private IP address: {}", config.private_ip); info!("Refresh time: {} seconds", config.refresh_time);