From 016dda4dbcef0ae107ff0088d2bd02c9655408d8 Mon Sep 17 00:00:00 2001 From: DashieTM Date: Sat, 1 Jun 2024 16:26:11 +0200 Subject: [PATCH] flatpak: Add funny directory workaround round 3 --- src/lib.rs | 19 ++++++++++++++----- src/tests.rs | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ab267c5..ce06f01 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -57,11 +57,20 @@ pub fn create_config(project_name: &str) -> Option { config_file = Some(res.unwrap()); } let config_file = config_file.unwrap(); - // Hacky flatpak workaround - let mut hacked_path = config_file.to_str().unwrap().to_string(); - hacked_path.remove_matches("var/app/org.Xetibo.ReSet/config/ReSet.toml"); - hacked_path.push_str("config/reset/ReSet.toml"); - Some(PathBuf::from(hacked_path)) + flatpak_fix(config_file) +} + +// Hacky flatpak workaround +pub fn flatpak_fix(path_buf: PathBuf) -> Option { + let hacked_path = path_buf.to_str().unwrap().to_string(); + if hacked_path.contains("var/app") { + Some(PathBuf::from(hacked_path.replace( + "var/app/org.Xetibo.ReSet/config/ReSet.toml", + "config/reset/ReSet.toml", + ))) + } else { + Some(path_buf) + } } pub fn parse_flags(flags: Vec) -> Flags { diff --git a/src/tests.rs b/src/tests.rs index 0d7cd38..26de727 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -15,6 +15,20 @@ fn test_config_dir() { assert!(create_config(project_name).is_some()); } +#[test] +fn test_flatpak_fix() { + use crate::flatpak_fix; + use std::path::PathBuf; + let flatpak = "/home/something/.var/app/org.Xetibo.ReSet/config/ReSet.toml"; + assert_eq!( + flatpak_fix(PathBuf::from(flatpak)) + .unwrap() + .to_str() + .unwrap(), + "/home/something/.config/reset/ReSet.toml" + ); +} + #[test] #[serial] fn test_custom_config() {