codetether_agent/tui/chat/sync/
env_helpers.rs1pub fn env_non_empty(name: &str) -> Option<String> {
4 std::env::var(name)
5 .ok()
6 .map(|value| value.trim().to_string())
7 .filter(|value| !value.is_empty())
8}
9
10pub fn env_bool(name: &str) -> Option<bool> {
11 let value = env_non_empty(name)?;
12 match value.to_ascii_lowercase().as_str() {
13 "1" | "true" | "yes" | "on" => Some(true),
14 "0" | "false" | "no" | "off" => Some(false),
15 _ => None,
16 }
17}
18
19pub fn is_placeholder_secret(value: &str) -> bool {
20 matches!(
21 value.trim().to_ascii_lowercase().as_str(),
22 "replace-me" | "changeme" | "change-me" | "your-token" | "your-key"
23 )
24}
25
26pub fn env_non_placeholder(name: &str) -> Option<String> {
27 env_non_empty(name).filter(|v| !is_placeholder_secret(v))
28}