2021-10-12 11:26:59 +08:00
|
|
|
use std::str::FromStr;
|
|
|
|
|
|
2025-11-03 14:19:46 -08:00
|
|
|
use eyre::{Context, eyre};
|
|
|
|
|
|
|
|
|
|
pub fn env_var(key: &str) -> eyre::Result<String> {
|
|
|
|
|
dotenvy::var(key)
|
|
|
|
|
.wrap_err_with(|| eyre!("missing environment variable `{key}`"))
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-19 14:46:12 -05:00
|
|
|
pub fn parse_var<T: FromStr>(var: &str) -> Option<T> {
|
2022-10-22 21:23:31 -07:00
|
|
|
dotenvy::var(var).ok().and_then(|i| i.parse().ok())
|
2021-10-12 11:26:59 +08:00
|
|
|
}
|
|
|
|
|
pub fn parse_strings_from_var(var: &'static str) -> Option<Vec<String>> {
|
2022-10-22 21:23:31 -07:00
|
|
|
dotenvy::var(var)
|
2021-10-12 11:26:59 +08:00
|
|
|
.ok()
|
|
|
|
|
.and_then(|s| serde_json::from_str::<Vec<String>>(&s).ok())
|
|
|
|
|
}
|