Skip to main content

soma_codemode/
home.rs

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}