use std::path::{Path, PathBuf};
pub fn expand_home(path: PathBuf) -> PathBuf {
let text = path.to_string_lossy();
let Some(rest) = text.strip_prefix("~/") else {
return path;
};
std::env::var_os("HOME")
.map(|home| PathBuf::from(home).join(rest))
.unwrap_or(path)
}
pub fn is_path_like(path: &Path) -> bool {
path.components().count() > 1 || path.to_string_lossy().contains('\\')
}
pub fn normalize_path(path: &Path) -> PathBuf {
let mut out = PathBuf::new();
for component in path.components() {
match component {
std::path::Component::CurDir => {}
std::path::Component::ParentDir => {
out.pop();
}
_ => out.push(component.as_os_str()),
}
}
out
}