use std::path::PathBuf;
pub const DOCKER_WORKSPACE_PATH: &str = "/workspace";
pub fn home_dir() -> PathBuf {
dirs::home_dir().expect("could not determine home directory")
}
pub fn expand_home(path: &str) -> PathBuf {
if let Some(rest) = path.strip_prefix("~/") {
home_dir().join(rest)
} else if path == "~" {
home_dir()
} else {
PathBuf::from(path)
}
}
pub fn resolve_from_cwd(path: &str) -> PathBuf {
let p = PathBuf::from(path);
if p.is_absolute() {
p
} else {
std::env::current_dir().unwrap_or_else(|_| PathBuf::from(".")).join(p)
}
}
pub fn default_config_dir() -> PathBuf {
home_dir().join(".pi").join("telepi")
}
pub fn default_config_path() -> PathBuf {
default_config_dir().join("config.toml")
}
pub fn default_systemd_user_dir() -> PathBuf {
home_dir().join(".config").join("systemd").join("user")
}
pub fn default_log_dir() -> PathBuf {
if cfg!(target_os = "macos") {
home_dir().join("Library").join("Logs").join("TelePi")
} else {
home_dir().join(".local").join("state").join("telepi").join("logs")
}
}