diff --git a/.changes/fix-deep-link-semver.md b/.changes/fix-deep-link-semver.md new file mode 100644 index 000000000..aefd11fce --- /dev/null +++ b/.changes/fix-deep-link-semver.md @@ -0,0 +1,6 @@ +--- +deep-link: patch +deep-link-js: patch +--- + +Revert the breaking change introduced by [#2928](https://github.com/tauri-apps/plugins-workspace/pull/2928). diff --git a/plugins/deep-link/src/error.rs b/plugins/deep-link/src/error.rs index 07c8d72cd..41eb764f1 100644 --- a/plugins/deep-link/src/error.rs +++ b/plugins/deep-link/src/error.rs @@ -23,14 +23,21 @@ pub enum Error { #[cfg(target_os = "linux")] #[error(transparent)] ParseIni(#[from] ini::ParseError), - #[cfg(target_os = "linux")] - #[error("Failed to run OS command `{0}`: {1}")] - Execute(&'static str, #[source] std::io::Error), #[cfg(mobile)] #[error(transparent)] PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError), } +// TODO(v3): change this into an error in v3, +// see . +#[inline] +#[cfg(target_os = "linux")] +pub(crate) fn inspect_command_error<'a>(command: &'a str) -> impl Fn(&std::io::Error) + 'a { + move |e| { + tracing::error!("Failed to run OS command `{command}`: {e}"); + } +} + impl Serialize for Error { fn serialize(&self, serializer: S) -> std::result::Result where diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs index 04c7ce86d..9db882c4a 100644 --- a/plugins/deep-link/src/lib.rs +++ b/plugins/deep-link/src/lib.rs @@ -334,12 +334,14 @@ mod imp { Command::new("update-desktop-database") .arg(target) .status() - .map_err(|error| crate::Error::Execute("update-desktop-database", error))?; + .inspect_err(crate::error::inspect_command_error( + "update-desktop-database", + ))?; Command::new("xdg-mime") .args(["default", &file_name, mime_type.as_str()]) .status() - .map_err(|error| crate::Error::Execute("xdg-mime", error))?; + .inspect_err(crate::error::inspect_command_error("xdg-mime"))?; Ok(()) } @@ -444,7 +446,7 @@ mod imp { &format!("x-scheme-handler/{}", _protocol.as_ref()), ]) .output() - .map_err(|error| crate::Error::Execute("xdg-mime", error))?; + .inspect_err(crate::error::inspect_command_error("xdg-mime"))?; Ok(String::from_utf8_lossy(&output.stdout).contains(&file_name)) }