aboutsummaryrefslogtreecommitdiff
path: root/flatpak/flatpak-install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'flatpak/flatpak-install.sh')
-rwxr-xr-xflatpak/flatpak-install.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/flatpak/flatpak-install.sh b/flatpak/flatpak-install.sh
new file mode 100755
index 0000000..e52497e
--- /dev/null
+++ b/flatpak/flatpak-install.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+# Build the Fluorine Manager Flatpak.
+#
+# Usage:
+# cd flatpak && bash flatpak-install.sh # build & install locally
+# cd flatpak && bash flatpak-install.sh bundle # build a .flatpak file to share
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+PROJECT_DIR="$(dirname "${SCRIPT_DIR}")"
+MANIFEST="${SCRIPT_DIR}/com.fluorine.manager.yml"
+APP_ID="com.fluorine.manager"
+BUILD_DIR="${PROJECT_DIR}/.flatpak-build"
+MODE="${1:-install}"
+
+# ── Ensure flathub remote exists ──
+if ! flatpak remote-list --user | grep -q flathub; then
+ echo "Adding flathub remote..."
+ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
+fi
+
+# ── Install required Flatpak runtime and SDK ──
+echo "Installing KDE Platform and SDK (may take a while on first run)..."
+flatpak install --user --noninteractive flathub org.kde.Platform//6.10 org.kde.Sdk//6.10
+
+echo "Installing Rust SDK extension..."
+flatpak install --user --noninteractive flathub org.freedesktop.Sdk.Extension.rust-stable//25.08
+
+cd "${PROJECT_DIR}"
+
+if [ "${MODE}" = "bundle" ]; then
+ # ── Build a distributable .flatpak file ──
+ echo ""
+ echo "Building Flatpak bundle (this may take a while)..."
+ flatpak-builder --repo="${PROJECT_DIR}/flatpak-repo" --force-clean \
+ "${BUILD_DIR}" "${MANIFEST}"
+ flatpak build-bundle "${PROJECT_DIR}/flatpak-repo" "${PROJECT_DIR}/fluorine-manager.flatpak" "${APP_ID}"
+ BUNDLE_SIZE="$(du -sh fluorine-manager.flatpak | cut -f1)"
+ echo ""
+ echo "=== Bundle created: fluorine-manager.flatpak (${BUNDLE_SIZE}) ==="
+ echo ""
+ echo "Share this file with testers. They install it with:"
+ echo " flatpak install --user fluorine-manager.flatpak"
+else
+ # ── Build and install locally ──
+ echo ""
+ echo "Building and installing Flatpak locally (this may take a while)..."
+ flatpak-builder --install --user --force-clean \
+ "${BUILD_DIR}" "${MANIFEST}"
+ echo ""
+ echo "=== Flatpak installed successfully ==="
+fi
+
+echo ""
+echo "Usage:"
+echo " flatpak run ${APP_ID} # launch GUI"
+echo " flatpak run ${APP_ID} create-portable --name myinstance --game falloutnv"
+echo " flatpak run ${APP_ID} list-instances"