From bd62a4ecc00faf1f68e829e4a62b3043735a003f Mon Sep 17 00:00:00 2001 From: Slinetrac Date: Thu, 25 Dec 2025 10:02:07 +0800 Subject: [PATCH] refactor(utils): extract freedesktop mimeapps handling into utils/mime --- src-tauri/src/utils/init.rs | 2 +- src-tauri/src/utils/{linux.rs => mime.rs} | 8 ++++++++ src-tauri/src/utils/mod.rs | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) rename src-tauri/src/utils/{linux.rs => mime.rs} (96%) diff --git a/src-tauri/src/utils/init.rs b/src-tauri/src/utils/init.rs index 767183254..974a78cab 100644 --- a/src-tauri/src/utils/init.rs +++ b/src-tauri/src/utils/init.rs @@ -493,7 +493,7 @@ pub fn init_scheme() -> Result<()> { } } - crate::utils::linux::ensure_mimeapps_entries(DESKTOP_FILE, DEEP_LINK_SCHEMES)?; + crate::utils::mime::ensure_mimeapps_entries(DESKTOP_FILE, DEEP_LINK_SCHEMES)?; Ok(()) } #[cfg(target_os = "macos")] diff --git a/src-tauri/src/utils/linux.rs b/src-tauri/src/utils/mime.rs similarity index 96% rename from src-tauri/src/utils/linux.rs rename to src-tauri/src/utils/mime.rs index f0b03de19..bc98aa52e 100644 --- a/src-tauri/src/utils/linux.rs +++ b/src-tauri/src/utils/mime.rs @@ -1,3 +1,11 @@ +//! Utilities for working with freedesktop MIME / mimeapps.list. +//! +//! NOTE: +//! `mimeapps.list` is not a strict INI file. +//! We intentionally perform line-based, round-trip edits instead of using +//! an INI parser to preserve comments, ordering, duplicate keys and desktop +//! environment quirks. + use anyhow::Result; use std::collections::HashMap; use std::env; diff --git a/src-tauri/src/utils/mod.rs b/src-tauri/src/utils/mod.rs index 3eb1d30ae..d0143ad47 100644 --- a/src-tauri/src/utils/mod.rs +++ b/src-tauri/src/utils/mod.rs @@ -5,7 +5,7 @@ pub mod help; pub mod i18n; pub mod init; #[cfg(target_os = "linux")] -pub mod linux; +pub mod mime; pub mod network; pub mod notification; pub mod resolve;