From f955f7b4903bcea376c0a8b430736f66c8cebf56 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:03:25 +0800 Subject: [PATCH] chore(deps): migrate dirs_next to dirs (#9929) --- .changes/dirs-next-dirs.md | 9 ++++ Cargo.lock | 34 ++++++++------- core/tauri-build/Cargo.toml | 2 +- core/tauri-build/src/lib.rs | 2 +- core/tauri/Cargo.toml | 2 +- core/tauri/src/path/desktop.rs | 44 ++++++++++---------- core/tauri/src/path/mod.rs | 2 +- tooling/bundler/Cargo.toml | 2 +- tooling/bundler/src/bundle/linux/appimage.rs | 2 +- tooling/bundler/src/bundle/macos/app.rs | 2 +- tooling/bundler/src/bundle/macos/sign.rs | 2 +- tooling/bundler/src/bundle/windows/msi.rs | 2 +- tooling/bundler/src/bundle/windows/nsis.rs | 4 +- tooling/cli/Cargo.lock | 26 +++++++----- 14 files changed, 78 insertions(+), 57 deletions(-) create mode 100644 .changes/dirs-next-dirs.md diff --git a/.changes/dirs-next-dirs.md b/.changes/dirs-next-dirs.md new file mode 100644 index 000000000..5ac2f0bca --- /dev/null +++ b/.changes/dirs-next-dirs.md @@ -0,0 +1,9 @@ +--- +"tauri": patch:deps +"tauri-build": patch:deps +"tauri-bundler": patch:deps +"tauri-cli": patch:deps +"@tauri-apps/cli": patch:deps +--- + +Switch from `dirs_next` to `dirs` as `dirs_next` is now unmaintained while `dirs` is diff --git a/Cargo.lock b/Cargo.lock index b35a0aa3f..b0b54e022 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -665,24 +665,24 @@ dependencies = [ ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "dirs" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "cfg-if", - "dirs-sys-next", + "dirs-sys", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "dirs-sys" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", + "option-ext", "redox_users", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -2177,6 +2177,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "overload" version = "0.1.1" @@ -3534,7 +3540,7 @@ dependencies = [ "cargo_toml", "cocoa", "data-url", - "dirs-next", + "dirs", "dunce", "embed_plist", "futures-util", @@ -3600,7 +3606,7 @@ version = "2.0.0-beta.17" dependencies = [ "anyhow", "cargo_toml", - "dirs-next", + "dirs", "glob", "heck 0.5.0", "json-patch", @@ -4087,14 +4093,14 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79da804c7d1fd82da182b39d4fe5ac1044b08117358b23b41daf88840a3e70d" +checksum = "0b27516dfcfa22a9faaf192283a122bfbede38c1e59ef194e3c4db6549b419c0" dependencies = [ "cocoa", "core-graphics", "crossbeam-channel", - "dirs-next", + "dirs", "libappindicator", "muda", "objc", diff --git a/core/tauri-build/Cargo.toml b/core/tauri-build/Cargo.toml index 5b541a10f..ba140d810 100644 --- a/core/tauri-build/Cargo.toml +++ b/core/tauri-build/Cargo.toml @@ -38,7 +38,7 @@ json-patch = "1.2" walkdir = "2" tauri-winres = "0.1" semver = "1" -dirs-next = "2" +dirs = "5" glob = "0.3" toml = "0.8" schemars = { version = "0.8.18", features = [ "preserve_order" ] } diff --git a/core/tauri-build/src/lib.rs b/core/tauri-build/src/lib.rs index 46d6a2c76..961f54f57 100644 --- a/core/tauri-build/src/lib.rs +++ b/core/tauri-build/src/lib.rs @@ -198,7 +198,7 @@ fn copy_frameworks(dest_dir: &Path, frameworks: &[String]) -> Result<()> { framework )); } - if let Some(home_dir) = dirs_next::home_dir() { + if let Some(home_dir) = dirs::home_dir() { if copy_framework_from(&home_dir.join("Library/Frameworks/"), framework, dest_dir)? { continue; } diff --git a/core/tauri/Cargo.toml b/core/tauri/Cargo.toml index acceccb53..b8e560bb7 100644 --- a/core/tauri/Cargo.toml +++ b/core/tauri/Cargo.toml @@ -59,7 +59,7 @@ getrandom = "0.2" serde_repr = "0.1" state = "0.6" http = "1.1" -dirs-next = "2.0" +dirs = "5" percent-encoding = "2.3" reqwest = { version = "0.12", default-features = false, features = [ "json", "stream" ] } bytes = { version = "1", features = [ "serde" ] } diff --git a/core/tauri/src/path/desktop.rs b/core/tauri/src/path/desktop.rs index bba815886..ac7dd149f 100644 --- a/core/tauri/src/path/desktop.rs +++ b/core/tauri/src/path/desktop.rs @@ -18,7 +18,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Music`. /// - **Windows:** Resolves to `{FOLDERID_Music}`. pub fn audio_dir(&self) -> Result { - dirs_next::audio_dir().ok_or(Error::UnknownPath) + dirs::audio_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's cache directory. @@ -29,7 +29,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Library/Caches`. /// - **Windows:** Resolves to `{FOLDERID_LocalAppData}`. pub fn cache_dir(&self) -> Result { - dirs_next::cache_dir().ok_or(Error::UnknownPath) + dirs::cache_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's config directory. @@ -40,7 +40,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Library/Application Support`. /// - **Windows:** Resolves to `{FOLDERID_RoamingAppData}`. pub fn config_dir(&self) -> Result { - dirs_next::config_dir().ok_or(Error::UnknownPath) + dirs::config_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's data directory. @@ -51,7 +51,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Library/Application Support`. /// - **Windows:** Resolves to `{FOLDERID_RoamingAppData}`. pub fn data_dir(&self) -> Result { - dirs_next::data_dir().ok_or(Error::UnknownPath) + dirs::data_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's local data directory. @@ -62,7 +62,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Library/Application Support`. /// - **Windows:** Resolves to `{FOLDERID_LocalAppData}`. pub fn local_data_dir(&self) -> Result { - dirs_next::data_local_dir().ok_or(Error::UnknownPath) + dirs::data_local_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's desktop directory. @@ -73,7 +73,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Desktop`. /// - **Windows:** Resolves to `{FOLDERID_Desktop}`. pub fn desktop_dir(&self) -> Result { - dirs_next::desktop_dir().ok_or(Error::UnknownPath) + dirs::desktop_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's document directory. @@ -84,7 +84,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Documents`. /// - **Windows:** Resolves to `{FOLDERID_Documents}`. pub fn document_dir(&self) -> Result { - dirs_next::document_dir().ok_or(Error::UnknownPath) + dirs::document_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's download directory. @@ -95,7 +95,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Downloads`. /// - **Windows:** Resolves to `{FOLDERID_Downloads}`. pub fn download_dir(&self) -> Result { - dirs_next::download_dir().ok_or(Error::UnknownPath) + dirs::download_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's executable directory. @@ -106,7 +106,7 @@ impl PathResolver { /// - **macOS:** Not supported. /// - **Windows:** Not supported. pub fn executable_dir(&self) -> Result { - dirs_next::executable_dir().ok_or(Error::UnknownPath) + dirs::executable_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's font directory. @@ -117,7 +117,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Library/Fonts`. /// - **Windows:** Not supported. pub fn font_dir(&self) -> Result { - dirs_next::font_dir().ok_or(Error::UnknownPath) + dirs::font_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's home directory. @@ -128,7 +128,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME`. /// - **Windows:** Resolves to `{FOLDERID_Profile}`. pub fn home_dir(&self) -> Result { - dirs_next::home_dir().ok_or(Error::UnknownPath) + dirs::home_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's picture directory. @@ -139,7 +139,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Pictures`. /// - **Windows:** Resolves to `{FOLDERID_Pictures}`. pub fn picture_dir(&self) -> Result { - dirs_next::picture_dir().ok_or(Error::UnknownPath) + dirs::picture_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's public directory. @@ -150,7 +150,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Public`. /// - **Windows:** Resolves to `{FOLDERID_Public}`. pub fn public_dir(&self) -> Result { - dirs_next::public_dir().ok_or(Error::UnknownPath) + dirs::public_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's runtime directory. @@ -161,7 +161,7 @@ impl PathResolver { /// - **macOS:** Not supported. /// - **Windows:** Not supported. pub fn runtime_dir(&self) -> Result { - dirs_next::runtime_dir().ok_or(Error::UnknownPath) + dirs::runtime_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's template directory. @@ -172,7 +172,7 @@ impl PathResolver { /// - **macOS:** Not supported. /// - **Windows:** Resolves to `{FOLDERID_Templates}`. pub fn template_dir(&self) -> Result { - dirs_next::template_dir().ok_or(Error::UnknownPath) + dirs::template_dir().ok_or(Error::UnknownPath) } /// Returns the path to the user's video dir @@ -183,7 +183,7 @@ impl PathResolver { /// - **macOS:** Resolves to `$HOME/Movies`. /// - **Windows:** Resolves to `{FOLDERID_Videos}`. pub fn video_dir(&self) -> Result { - dirs_next::video_dir().ok_or(Error::UnknownPath) + dirs::video_dir().ok_or(Error::UnknownPath) } /// Returns the path to the resource directory of this app. @@ -196,7 +196,7 @@ impl PathResolver { /// /// Resolves to [`config_dir`](self.config_dir)`/${bundle_identifier}`. pub fn app_config_dir(&self) -> Result { - dirs_next::config_dir() + dirs::config_dir() .ok_or(Error::UnknownPath) .map(|dir| dir.join(&self.0.config().identifier)) } @@ -205,7 +205,7 @@ impl PathResolver { /// /// Resolves to [`data_dir`](self.data_dir)`/${bundle_identifier}`. pub fn app_data_dir(&self) -> Result { - dirs_next::data_dir() + dirs::data_dir() .ok_or(Error::UnknownPath) .map(|dir| dir.join(&self.0.config().identifier)) } @@ -214,7 +214,7 @@ impl PathResolver { /// /// Resolves to [`local_data_dir`](self.local_data_dir)`/${bundle_identifier}`. pub fn app_local_data_dir(&self) -> Result { - dirs_next::data_local_dir() + dirs::data_local_dir() .ok_or(Error::UnknownPath) .map(|dir| dir.join(&self.0.config().identifier)) } @@ -223,7 +223,7 @@ impl PathResolver { /// /// Resolves to [`cache_dir`](self.cache_dir)`/${bundle_identifier}`. pub fn app_cache_dir(&self) -> Result { - dirs_next::cache_dir() + dirs::cache_dir() .ok_or(Error::UnknownPath) .map(|dir| dir.join(&self.0.config().identifier)) } @@ -237,12 +237,12 @@ impl PathResolver { /// - **Windows:** Resolves to [`data_local_dir`](self.data_local_dir)`/${bundle_identifier}/logs`. pub fn app_log_dir(&self) -> Result { #[cfg(target_os = "macos")] - let path = dirs_next::home_dir() + let path = dirs::home_dir() .ok_or(Error::UnknownPath) .map(|dir| dir.join("Library/Logs").join(&self.0.config().identifier)); #[cfg(not(target_os = "macos"))] - let path = dirs_next::data_local_dir() + let path = dirs::data_local_dir() .ok_or(Error::UnknownPath) .map(|dir| dir.join(&self.0.config().identifier).join("logs")); diff --git a/core/tauri/src/path/mod.rs b/core/tauri/src/path/mod.rs index 038ca2f17..3fcaf720a 100644 --- a/core/tauri/src/path/mod.rs +++ b/core/tauri/src/path/mod.rs @@ -66,7 +66,7 @@ impl<'de> Deserialize<'de> for SafePathBuf { /// The base directory is the optional root of a file system operation. /// If informed by the API call, all paths will be relative to the path of the given directory. /// -/// For more information, check the [`dirs_next` documentation](https://docs.rs/dirs_next/). +/// For more information, check the [`dirs` documentation](https://docs.rs/dirs/). #[derive(Serialize_repr, Deserialize_repr, Clone, Copy, Debug)] #[repr(u16)] #[non_exhaustive] diff --git a/tooling/bundler/Cargo.toml b/tooling/bundler/Cargo.toml index bac6b2880..0807cbdb6 100644 --- a/tooling/bundler/Cargo.toml +++ b/tooling/bundler/Cargo.toml @@ -30,7 +30,7 @@ walkdir = "2" handlebars = "5.1" tempfile = "3.10.1" log = { version = "0.4.21", features = [ "kv" ] } -dirs-next = "2.0" +dirs = "5" os_pipe = "1" ureq = { version = "2.9.6", default-features = false, features = [ "socks-proxy" ] } native-tls = { version = "0.2", optional = true } diff --git a/tooling/bundler/src/bundle/linux/appimage.rs b/tooling/bundler/src/bundle/linux/appimage.rs index 7c9b26a1f..afd705415 100644 --- a/tooling/bundler/src/bundle/linux/appimage.rs +++ b/tooling/bundler/src/bundle/linux/appimage.rs @@ -60,7 +60,7 @@ pub fn bundle_project(settings: &Settings) -> crate::Result> { sh_map.insert("app_name", settings.product_name()); sh_map.insert("app_name_uppercase", &upcase_app_name); sh_map.insert("appimage_filename", &appimage_filename); - let tauri_tools_path = dirs_next::cache_dir().map_or_else( + let tauri_tools_path = dirs::cache_dir().map_or_else( || output_path.to_path_buf(), |mut p| { p.push("tauri"); diff --git a/tooling/bundler/src/bundle/macos/app.rs b/tooling/bundler/src/bundle/macos/app.rs index 656986541..90e659901 100644 --- a/tooling/bundler/src/bundle/macos/app.rs +++ b/tooling/bundler/src/bundle/macos/app.rs @@ -407,7 +407,7 @@ fn copy_frameworks_to_bundle( framework ))); } - if let Some(home_dir) = dirs_next::home_dir() { + if let Some(home_dir) = dirs::home_dir() { if copy_framework_from(&dest_dir, framework, &home_dir.join("Library/Frameworks/"))? { continue; } diff --git a/tooling/bundler/src/bundle/macos/sign.rs b/tooling/bundler/src/bundle/macos/sign.rs index 952c798be..15b03aeb7 100644 --- a/tooling/bundler/src/bundle/macos/sign.rs +++ b/tooling/bundler/src/bundle/macos/sign.rs @@ -424,7 +424,7 @@ pub fn notarize_auth() -> Result { let mut key_path = None; let mut search_paths = vec!["./private_keys".into()]; - if let Some(home_dir) = dirs_next::home_dir() { + if let Some(home_dir) = dirs::home_dir() { search_paths.push(home_dir.join("private_keys")); search_paths.push(home_dir.join(".private_keys")); search_paths.push(home_dir.join(".appstoreconnect").join("private_keys")); diff --git a/tooling/bundler/src/bundle/windows/msi.rs b/tooling/bundler/src/bundle/windows/msi.rs index 8edd0661d..b24bef152 100644 --- a/tooling/bundler/src/bundle/windows/msi.rs +++ b/tooling/bundler/src/bundle/windows/msi.rs @@ -25,7 +25,7 @@ const WIX_REQUIRED_FILES: &[&str] = &[ /// Runs all of the commands to build the MSI installer. /// Returns a vector of PathBuf that shows where the MSI was created. pub fn bundle_project(settings: &Settings, updater: bool) -> crate::Result> { - let mut wix_path = dirs_next::cache_dir().unwrap(); + let mut wix_path = dirs::cache_dir().unwrap(); wix_path.push("tauri/WixTools"); if !wix_path.exists() { diff --git a/tooling/bundler/src/bundle/windows/nsis.rs b/tooling/bundler/src/bundle/windows/nsis.rs index 1d29e9e09..9d2380b53 100644 --- a/tooling/bundler/src/bundle/windows/nsis.rs +++ b/tooling/bundler/src/bundle/windows/nsis.rs @@ -63,7 +63,7 @@ const NSIS_REQUIRED_FILES_HASH: &[(&str, &str, &str, HashAlgorithm)] = &[( /// Runs all of the commands to build the NSIS installer. /// Returns a vector of PathBuf that shows where the NSIS installer was created. pub fn bundle_project(settings: &Settings, updater: bool) -> crate::Result> { - let tauri_tools_path = dirs_next::cache_dir().unwrap().join("tauri"); + let tauri_tools_path = dirs::cache_dir().unwrap().join("tauri"); let nsis_toolset_path = tauri_tools_path.join("NSIS"); if !nsis_toolset_path.exists() { @@ -176,7 +176,7 @@ fn build_nsis_app_installer( #[cfg(not(target_os = "windows"))] { - let mut dir = dirs_next::cache_dir().unwrap(); + let mut dir = dirs::cache_dir().unwrap(); dir.extend(["tauri", "NSIS", "Plugins", "x86-unicode"]); data.insert("additional_plugins_path", to_json(dir)); } diff --git a/tooling/cli/Cargo.lock b/tooling/cli/Cargo.lock index 1d9b509e9..4ce5bd15e 100644 --- a/tooling/cli/Cargo.lock +++ b/tooling/cli/Cargo.lock @@ -1102,24 +1102,24 @@ dependencies = [ ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "dirs" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "cfg-if", - "dirs-sys-next", + "dirs-sys", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "dirs-sys" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", + "option-ext", "redox_users", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -3127,6 +3127,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "ordered-float" version = "2.10.1" @@ -4844,7 +4850,7 @@ dependencies = [ "anyhow", "ar", "bitness", - "dirs-next", + "dirs", "dunce", "flate2", "glob",