diff --git a/src/paths.rs b/src/paths.rs index 7761758..cc2d0eb 100644 --- a/src/paths.rs +++ b/src/paths.rs @@ -98,7 +98,7 @@ fn get_steamvr_base_dir() -> anyhow::Result { } pub fn get_steamvr_bin_dir_path() -> anyhow::Result { - let res = get_steamvr_base_dir()?.join("bin/linux64"); + let res = get_steamvr_base_dir()?.join("bin/linux64").canonicalize()?; if !res.is_dir() { bail!("SteamVR bin dir `{}` does not exist", res.to_string_lossy()); } diff --git a/src/util/steam_library_folder.rs b/src/util/steam_library_folder.rs index 253ed12..75af1e2 100644 --- a/src/util/steam_library_folder.rs +++ b/src/util/steam_library_folder.rs @@ -14,11 +14,9 @@ pub struct SteamLibraryFolder { } fn get_steam_main_dir_path() -> anyhow::Result { - let steam_root: PathBuf = get_home_dir().join(".steam/root"); + let steam_root: PathBuf = get_home_dir().join(".steam/root").canonicalize()?; - if steam_root.is_symlink() { - Ok(steam_root.read_link()?) - } else if steam_root.is_dir() { + if steam_root.is_dir() { Ok(steam_root) } else { bail!( @@ -30,7 +28,9 @@ fn get_steam_main_dir_path() -> anyhow::Result { impl SteamLibraryFolder { pub fn get_folders() -> anyhow::Result> { - let libraryfolders_path = get_steam_main_dir_path()?.join("steamapps/libraryfolders.vdf"); + let libraryfolders_path = get_steam_main_dir_path()? + .join("steamapps/libraryfolders.vdf") + .canonicalize()?; if !libraryfolders_path.is_file() { bail!( "Steam libraryfolders.vdf does not exist in its canonical location {}",