1use std::path::PathBuf;
2
3#[must_use]
4pub fn soma_home() -> PathBuf {
5 if let Ok(home) = std::env::var("SOMA_HOME") {
6 if !home.is_empty() {
7 return PathBuf::from(home);
8 }
9 }
10 match std::env::var("HOME") {
11 Ok(home) if !home.is_empty() => PathBuf::from(home).join(".soma"),
12 _ => PathBuf::from(".soma"),
13 }
14}
15
16#[must_use]
17pub fn home_dir() -> Option<PathBuf> {
18 match std::env::var("HOME") {
19 Ok(home) if !home.is_empty() => Some(PathBuf::from(home)),
20 _ => None,
21 }
22}
23
24#[must_use]
25pub fn env_non_empty(name: &str) -> Option<String> {
26 std::env::var(name).ok().filter(|value| !value.is_empty())
27}