Skip to main content

sniff/
env_value.rs

1use std::env;
2
3pub(crate) fn normalize(raw: &str) -> String {
4    let trimmed = raw.trim();
5    if trimmed.len() >= 2 {
6        let bytes = trimmed.as_bytes();
7        let first = bytes[0];
8        let last = bytes[bytes.len() - 1];
9        if (first == b'"' && last == b'"') || (first == b'\'' && last == b'\'') {
10            return trimmed[1..trimmed.len() - 1].trim().to_string();
11        }
12    }
13    trimmed.to_string()
14}
15
16pub(crate) fn read(name: &str) -> Option<String> {
17    env::var(name)
18        .ok()
19        .map(|value| normalize(&value))
20        .filter(|value| !value.is_empty())
21}