# actions/utils/generate-happ-subscriptions.py """Port of utils/generate-happ-subscriptions — build + run the happ generator image.""" import os from engine.descriptor import Meta, Arg METADATA = Meta(summary="Generate .psub files from a JSON config via the happ generator (docker).", args=[Arg("input_json", "input JSON config"), Arg("output_dir", "output directory")]) IMAGE = "happ-subscription-generator" def run(ctx, args): log = ctx.log src_dir = os.path.join(ctx.paths.commons, "source", "happ-subscription-generator") inp, out = os.path.realpath(args.input_json), os.path.realpath(args.output_dir) log.info(f"Building {IMAGE}...") ctx.sys.run(["docker", "build", "-t", IMAGE, src_dir], check=True) log.info(f"Running generator: {inp} -> {out}") ctx.sys.run(["docker", "run", "--rm", "-v", f"{inp}:/app/input.json:ro", "-v", f"{out}:/app/output:rw", IMAGE, "/app/input.json", "/app/output"], check=True) log.success("Subscription generation completed.")