diff options
Diffstat (limited to 'flatpak/flatpak-install.sh')
| -rwxr-xr-x | flatpak/flatpak-install.sh | 58 |
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" |
