shellexpand_utils/
canonicalize.rs1use log::debug;
2use std::path::{Path, PathBuf};
3
4use crate::{Error, Result};
5
6pub fn try_path(path: impl AsRef<Path>) -> Result<PathBuf> {
7 let path = path.as_ref();
8 let canonicalized_path = path
9 .canonicalize()
10 .map_err(|err| Error::CanonicalizePathError(err, path.to_owned()))?;
11 Ok(canonicalized_path)
12}
13
14pub fn path(path: impl AsRef<Path>) -> PathBuf {
15 let path = path.as_ref();
16 try_path(path).unwrap_or_else(|err| {
17 debug!("{err:?}");
18 path.to_owned()
19 })
20}