use std::env;
use std::path::{Path, PathBuf};
pub fn default_sessions_root() -> anyhow::Result<PathBuf> {
if let Ok(xdg_state_home) = env::var("XDG_STATE_HOME") {
return Ok(PathBuf::from(xdg_state_home).join("defect/sessions"));
}
if let Ok(home) = env::var("HOME") {
return Ok(PathBuf::from(home).join(".local/state/defect/sessions"));
}
Err(anyhow::anyhow!(
"cannot resolve session storage root: neither XDG_STATE_HOME nor HOME is set"
))
}
#[must_use]
pub fn local_sessions_root(cwd: &Path) -> PathBuf {
let root = defect_config::find_repo_root(cwd).unwrap_or_else(|| cwd.to_path_buf());
root.join(".defect/sessions")
}