shellexpand_utils/
canonicalize.rs

1use 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}