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}