38 lines
860 B
Rust
38 lines
860 B
Rust
use std::env::VarError;
|
|
|
|
pub fn get_env_var(key: &str, default: &str) -> String {
|
|
std::env::var(key).unwrap_or_else(|err| {
|
|
match err {
|
|
VarError::NotPresent => {
|
|
tracing::info!("using default environment variable {}:{}", key, default)
|
|
},
|
|
VarError::NotUnicode(_) => {
|
|
tracing::error!(
|
|
"{} is not a valid UTF-8 string, use default value:{}",
|
|
key,
|
|
default
|
|
);
|
|
},
|
|
}
|
|
default.to_owned()
|
|
})
|
|
}
|
|
|
|
/// Optionally get an environment variable.
|
|
/// if value is empty, return None.
|
|
pub fn get_env_var_opt(key: &str) -> Option<String> {
|
|
match std::env::var(key) {
|
|
Ok(val) => {
|
|
if val.is_empty() {
|
|
None
|
|
} else {
|
|
Some(val)
|
|
}
|
|
},
|
|
Err(_) => {
|
|
tracing::info!("using default environment variable {}:None", key);
|
|
None
|
|
},
|
|
}
|
|
}
|