diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 91de6cf..2859011 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,6 +24,7 @@ jobs: - name: Test run: | cargo test + cargo test --features flatpak test_Windows: runs-on: windows-latest steps: diff --git a/Cargo.lock b/Cargo.lock index bc2ad6a..a74cf9f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -256,7 +256,7 @@ dependencies = [ [[package]] name = "boilr" -version = "1.7.17" +version = "1.7.18" dependencies = [ "base64 0.20.0", "color-eyre", diff --git a/Cargo.toml b/Cargo.toml index b2c20ef..0b71caf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] edition = "2021" name = "boilr" -version = "1.7.17" +version = "1.7.18" [dependencies] base64 = "^0.20.0" diff --git a/Readme.md b/Readme.md index cc2617c..1deae2a 100644 --- a/Readme.md +++ b/Readme.md @@ -72,7 +72,7 @@ BoilR can import games from many platforms, but there are limits based | [Rare](https://github.com/Dummerle/Rare/releases) | No | Yes | Yes | | [Heroic Launcher](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) | No | Yes | Yes | | [Amazon Games](https://gaming.amazon.com) | Yes | No | No | -| [Flatpaks](https://flathub.org/) | No | Yes | [No](https://github.com/PhilipK/BoilR/issues/184#issuecomment-1192680467) | +| [Flatpaks](https://flathub.org/) | No | Yes | Yes | | [Bottles](https://usebottles.com/) | No | Yes | Yes | | [MiniGalaxy](https://sharkwouter.github.io/minigalaxy/) | No | Yes | Yes | diff --git a/flatpak/io.github.philipk.boilr.appdata.xml b/flatpak/io.github.philipk.boilr.appdata.xml index fd44a95..32334da 100644 --- a/flatpak/io.github.philipk.boilr.appdata.xml +++ b/flatpak/io.github.philipk.boilr.appdata.xml @@ -26,6 +26,14 @@ https://hughsie.github.io/oars/index.html --> + + +
    +
  • Can now find flatpak apps from flatpak version
  • +
+
+
+
    diff --git a/src/platforms/flatpak/platform.rs b/src/platforms/flatpak/platform.rs index f44700d..220d354 100644 --- a/src/platforms/flatpak/platform.rs +++ b/src/platforms/flatpak/platform.rs @@ -37,13 +37,7 @@ impl NeedsPorton for FlatpakApp { impl FlatpakPlatform { fn get_flatpak_apps(&self) -> eyre::Result> { - use std::process::Command; - let mut command = Command::new("flatpak"); - let output = command - .arg("list") - .arg("--app") - .arg("--columns=name,application") - .output()?; + let output = get_flatpak_applications()?; let output_string = String::from_utf8_lossy(&output.stdout).to_string(); let mut result = vec![]; for line in output_string.lines() { @@ -61,6 +55,30 @@ impl FlatpakPlatform { } } +fn get_flatpak_applications() -> std::io::Result { + use std::process::Command; + #[cfg(not(feature = "flatpak"))] + { + let mut command = Command::new("flatpak"); + command + .arg("list") + .arg("--app") + .arg("--columns=name,application") + .output() + } + #[cfg(feature = "flatpak")] + { + let mut command = Command::new("flatpak-spawn"); + command + .arg("--host") + .arg("flatpak") + .arg("list") + .arg("--app") + .arg("--columns=name,application") + .output() + } +} + impl FromSettingsString for FlatpakPlatform { fn from_settings_string>(s: S) -> Self { FlatpakPlatform {