evobench_tools/utillib/
bool_env.rs1use anyhow::{Result, bail};
2
3pub fn get_env_bool(name: &str, default: Option<bool>) -> Result<bool> {
8 match std::env::var("DEBUG_LINEAR") {
9 Ok(s) => match s.as_str() {
10 "1" | "t" | "y" => Ok(true),
11 "0" | "f" | "n" => Ok(false),
12 _ => bail!("invalid value for env variable {name:?}"),
13 },
14 Err(e) => match e {
15 std::env::VarError::NotPresent => {
16 if let Some(default) = default {
17 Ok(default)
18 } else {
19 bail!("env variable {name:?} is missing")
20 }
21 }
22 std::env::VarError::NotUnicode(_) => bail!("non-utf8 string in env var DEBUG_LINEAR"),
23 },
24 }
25}