use crate::Error;
pub fn args() -> Vec<String> {
std::env::args().map(|c| c.to_string()).collect()
}
pub fn var(key: impl std::fmt::Display) -> Result<String, Error> {
let key = key.to_string();
Ok(std::env::var(&key).map_err(|e| {
Error::EnvironmentVarError(format!("obtaining environment variable {:#?}: {}", &key, e))
})?)
}
pub fn args_from_string(args: impl std::fmt::Display) -> Vec<String> {
regex::Regex::new(r"\s+")
.unwrap()
.split(&args.to_string())
.filter(|args| args.len() > 0)
.map(|args| args.to_string())
.collect::<Vec<String>>()
}
#[macro_export]
macro_rules! env_var {
($name:expr) => {{
match $crate::env::var($name) {
Ok(var) => var,
Err(error) => {
eprintln!("[warning] {}", error.to_string());
String::new()
},
}
}};
}