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 {