OpenMiInk/third_party/krita-ci-utilities/flatpak-build.py
Hellings b8c8ff98e2 Hi
2026-10-16 09:05:56 -04:00

46 lines
1.5 KiB
Python

#!/usr/bin/env python3
import os, sys, subprocess, json
from ruamel.yaml import YAML
if __name__ == '__main__':
try:
modulename = sys.argv[1]
config = sys.argv[2:]
except ValueError:
print("usage: {} module_name [config-opt ...]".format(sys.argv[0]))
sys.exit(1)
manifestfile = ".flatpak-manifest"
# add right extension
if os.path.exists(f"{manifestfile}.yml"):
manifestfile = f"{manifestfile}.yml"
elif os.path.exists(f"{manifestfile}.yaml"):
manifestfile = f"{manifestfile}.yaml"
else:
manifestfile = f"{manifestfile}.json"
# might be useful for debugging
subprocess.call(["flatpak", "info", "org.kde.Sdk//5.15-21.08"])
subprocess.call(["flatpak", "info", "org.kde.Sdk//5.15-22.08"])
subprocess.call(["flatpak", "info", "org.kde.Platform//5.15-21.08"])
subprocess.call(["flatpak", "info", "org.kde.Platform//5.15-22.08"])
# finally, build and install
subprocess.check_call(["flatpak-builder", "--repo=repo", "--force-clean", "build-dir", "--disable-rofiles-fuse", "--user", manifestfile])
# Export the result to a bundle
f = open(manifestfile, "r")
if manifestfile.endswith(".json"):
manifest = json.load(f)
else:
yaml = YAML()
manifest = yaml.load(f)
try:
app_id = manifest["app-id"]
except KeyError:
app_id = manifest["id"]
subprocess.check_call(["flatpak", "build-bundle", "repo",
f"{modulename}.flatpak", app_id, "master"])