rust_util/
util_env.rs

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}