use std::path::{Path, PathBuf};
/// return the closest enclosing directory
pub fn closest_dir(mut path: &Path) -> PathBuf {
loop {
if path.exists() && path.is_dir() {
return path.to_path_buf();
}
match path.parent() {
Some(parent) => path = parent,
None => {
debug!("no existing parent"); // unexpected
return path.to_path_buf();
}
}
}
}