use std::env;
pub unsafe fn dotenv_filtered(
filter_keys: &[&str],
) -> Result<(), dotenvy::Error> {
for try_kv in dotenvy::dotenv_iter()? {
let (key, value) = try_kv?;
if filter_keys.contains(&key.as_str()) {
if env::var(&key).is_err() {
unsafe {
env::set_var(&key, value);
}
}
}
}
Ok(())
}
pub fn var_pure(given_key: &str) -> Result<String, dotenvy::Error> {
if let Ok(value) = env::var(given_key) {
return Ok(value);
}
for try_kv in dotenvy::dotenv_iter()? {
let (key, value) = try_kv?;
if key == given_key {
return Ok(value);
}
}
Err(dotenvy::Error::EnvVar(env::VarError::NotPresent))
}