pull/2844/merge
yobson1 2 days ago committed by GitHub
commit 79664d0b55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,7 @@
---
"deep-link": patch
"deep-link-js": patch
---
Fix deep link protocol handler not set as default on linux
Fix duplicate protocols added to MimeType section in .desktop files on linux

@ -303,12 +303,14 @@ mod imp {
if let Ok(mut desktop_file) = ini::Ini::load_from_file(&target_file) { if let Ok(mut desktop_file) = ini::Ini::load_from_file(&target_file) {
if let Some(section) = desktop_file.section_mut(Some("Desktop Entry")) { if let Some(section) = desktop_file.section_mut(Some("Desktop Entry")) {
let old_mimes = section.remove("MimeType"); // it's ok to remove it - we only write to the file if it's missing
section.append( // and in that case we include old_mimes
"MimeType", let old_mimes = section.remove("MimeType").unwrap_or_default();
format!("{mime_type};{}", old_mimes.unwrap_or_default()),
); if !old_mimes.split(';').any(|mime| mime == mime_type) {
desktop_file.write_to_file(&target_file)?; section.append("MimeType", format!("{mime_type};{}", old_mimes));
desktop_file.write_to_file(&target_file)?;
}
} }
} else { } else {
let mut file = File::create(target_file)?; let mut file = File::create(target_file)?;
@ -333,7 +335,7 @@ mod imp {
.status()?; .status()?;
Command::new("xdg-mime") Command::new("xdg-mime")
.args(["default", &file_name, _protocol.as_ref()]) .args(["default", &file_name, mime_type.as_str()])
.status()?; .status()?;
Ok(()) Ok(())

Loading…
Cancel
Save