aria_primitives/
user_home.rs1use std::path::PathBuf;
4
5pub fn resolve() -> Result<PathBuf, UserHomeError> {
6 let path = std::env::var_os("HOME")
7 .map(PathBuf::from)
8 .ok_or(UserHomeError::NotSet)?;
9 if !path.is_absolute() {
10 return Err(UserHomeError::NotAbsolute { path });
11 }
12 Ok(path)
13}
14
15#[derive(Debug, thiserror::Error)]
16pub enum UserHomeError {
17 #[error("HOME is not set")]
18 NotSet,
19
20 #[error("HOME is not an absolute path: {}", path.display())]
21 NotAbsolute { path: PathBuf },
22}