aboutsummaryrefslogtreecommitdiff
path: root/flatpak/flatpak-install.sh
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 02:37:39 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 02:37:39 -0600
commit7ee008e150bc5bcf76082d726f719ee0fdfda982 (patch)
tree27fb39be241fdb5ac2734c574de678977d1856d0 /flatpak/flatpak-install.sh
Fluorine Manager: full Linux port of Mod Organizer 2
Complete native Linux port with FUSE-based virtual filesystem, Proton/umu-run integration, and Flatpak packaging. Key features: - FUSE VFS replacing Windows USVFS (in-process + standalone helper for Flatpak) - Proton/GE-Proton/umu-run launcher with env var forwarding - Flatpak support (sandbox-aware VFS, NXM handler, umu-run) - Wine prefix management UI - Case-insensitive path resolution for Linux filesystems - QSettings-safe INI handling (avoids Bethesda INI corruption) - Portable instance support with auto-generated launcher scripts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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"