1use std::env;
2
3pub fn is_env_on(var: &str) -> bool {
4 env_var(var).map(|val| is_on(&val)).unwrap_or(false)
5}
6
7pub fn is_env_off(var: &str) -> bool {
8 env_var(var).map(|val| is_off(&val)).unwrap_or(false)
9}
10
11pub fn is_on(val: &str) -> bool {
12 let lower_val = val.to_lowercase();
13 ["true", "yes", "1"].iter().any(|x| *x == lower_val)
14}
15
16pub fn is_off(val: &str) -> bool {
17 let lower_val = val.to_lowercase();
18 ["false", "no", "0"].iter().any(|x| *x == lower_val)
19}
20
21pub fn env_var(var: &str) -> Option<String> {
22 let var_from_env = env::var(var).ok();
23 if var_from_env.is_some() {
24 return var_from_env;
25 }
26 let var_content = crate::util_file::read_file_content(&format!("~/.config/envs/{}", var));
27 if let Ok(var_content) = var_content {
28 return Some(var_content.trim().to_string());
29 }
30 None
31}