Files
bearwave/scripts/build-flatpak.sh
Sebastian Palencsar 0014a8567c chore(flatpak): rotate GPG signing key to Bearwave App
Replace the legacy Flatpak repo key with Bearwave App
<dev@bearwave.app> (5BAA384577671E45) in bearwave.flatpakref,
build-flatpak.sh, and deploy-flatpak.sh.
2026-06-23 12:06:03 +02:00

60 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$root"
gpg_key_id="${BEARWAVE_FLATPAK_GPG_KEY:-5BAA384577671E45}"
mode="build"
deploy=false
for arg in "$@"; do
case "${arg}" in
--reexport) mode="reexport" ;;
--deploy) deploy=true ;;
--reexport-deploy)
mode="reexport"
deploy=true
;;
esac
done
git_hash="$(git -C "${root}" rev-parse --short HEAD 2>/dev/null || echo unknown)"
build_manifest="${root}/.flatpak-builder-manifest.json"
python3 - "${root}/de.nerdbear.bearwave.json" "${build_manifest}" "${git_hash}" <<'PY'
import json, sys
src, dst, git_hash = sys.argv[1], sys.argv[2], sys.argv[3]
with open(src, encoding="utf-8") as f:
manifest = json.load(f)
module = manifest["modules"][0]
module.setdefault("build-options", {}).setdefault("env", {})["BEARWAVE_GIT_HASH"] = git_hash
with open(dst, "w", encoding="utf-8") as f:
json.dump(manifest, f, indent=4)
f.write("\n")
PY
if [[ "${mode}" == "reexport" ]]; then
flatpak-builder \
--repo=flatpak_repo \
--gpg-sign="${gpg_key_id}" \
--export-only \
flatpak_build \
"${build_manifest}"
else
flatpak-builder \
--repo=flatpak_repo \
--gpg-sign="${gpg_key_id}" \
--force-clean \
flatpak_build \
"${build_manifest}"
fi
flatpak build-update-repo --gpg-sign="${gpg_key_id}" flatpak_repo
echo "Flatpak repo updated in flatpak_repo/."
if [[ "${deploy}" == true ]]; then
exec "${root}/scripts/deploy-flatpak.sh"
fi
echo "Deploy with: scripts/deploy-flatpak.sh"