57 lines
1.7 KiB
Bash
Executable File
57 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
# build-flatpak.sh — one-shot Linux packaging: build the Flatpak bundle.
|
|
#
|
|
# Output: packaging/Vestibule-<version>.flatpak
|
|
#
|
|
# Prerequisites:
|
|
# - flatpak + flatpak-builder (distro package)
|
|
# - the Freedesktop 24.08 SDK + Rust extension (installed automatically
|
|
# from Flathub on first run, ~1 GB)
|
|
#
|
|
# Usage:
|
|
# ./packaging/build-flatpak.sh
|
|
#
|
|
# POSIX sh.
|
|
|
|
set -eu
|
|
|
|
VERSION="1.2.2"
|
|
APP_ID="net.dcos.Vestibule"
|
|
PACKAGING_DIR=$(cd "$(dirname "$0")" && pwd)
|
|
REPO_ROOT=$(cd "${PACKAGING_DIR}/.." && pwd)
|
|
REPO_DIR="${PACKAGING_DIR}/repo"
|
|
BUNDLE="${PACKAGING_DIR}/Vestibule-${VERSION}.flatpak"
|
|
|
|
for tool in flatpak flatpak-builder; do
|
|
if ! command -v "${tool}" >/dev/null 2>&1; then
|
|
echo "error: ${tool} not found — install it from your distribution" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo "==> ensure flathub remote + Freedesktop 24.08 SDK (first run: ~1 GB)"
|
|
flatpak remote-add --if-not-exists --user flathub \
|
|
https://flathub.org/repo/flathub.flatpakrepo
|
|
flatpak install --user --noninteractive -y flathub \
|
|
org.freedesktop.Sdk//24.08 \
|
|
org.freedesktop.Sdk.Extension.rust-stable//24.08 \
|
|
2>/dev/null || flatpak install --user --noninteractive flathub \
|
|
org.freedesktop.Sdk//24.08 \
|
|
org.freedesktop.Sdk.Extension.rust-stable//24.08
|
|
|
|
echo "==> flatpak-builder"
|
|
cd "${REPO_ROOT}"
|
|
rm -rf "${REPO_DIR}"
|
|
flatpak-builder --force-clean --repo="${PACKAGING_DIR}/repo" \
|
|
"${PACKAGING_DIR}/builddir" \
|
|
"${PACKAGING_DIR}/${APP_ID}.json"
|
|
|
|
echo "==> bundle"
|
|
flatpak build-bundle "${PACKAGING_DIR}/repo" "${BUNDLE}" "${APP_ID}" "${VERSION}"
|
|
|
|
echo ""
|
|
echo " [ok] ${BUNDLE} ($(du -h "${BUNDLE}" | cut -f1))"
|
|
echo ""
|
|
echo "Install locally: flatpak install --user ${BUNDLE}"
|
|
echo "Then run: flatpak run ${APP_ID}"
|