#! /usr/bin/python3

"""Make a metadata.yaml file for a LXD image."""

import argparse
import json
import sys
import time


# Map dpkg architecture names to LXD architecture names.
lxd_arches = {
    "amd64": "x86_64",
    "arm64": "aarch64",
    "armhf": "armv7l",
    "i386": "i686",
    "powerpc": "ppc",
    "ppc64el": "ppc64le",
    "s390x": "s390x",
    "riscv64": "riscv64",
    }


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("series", help="Ubuntu series name")
    parser.add_argument("architecture", help="Ubuntu architecture name")
    args = parser.parse_args()

    metadata = {
        "architecture": lxd_arches[args.architecture],
        "creation_date": int(time.time()),
        "properties": {
            "os": "Ubuntu",
            "series": args.series,
            "architecture": args.architecture,
            "description": "Ubuntu buildd %s %s" % (
                args.series, args.architecture),
            },
        }

    # Encoding this as JSON is good enough, and saves pulling in a YAML
    # library dependency.
    json.dump(
        metadata, sys.stdout, sort_keys=True, indent=4, separators=(",", ": "),
        ensure_ascii=False)


if __name__ == "__main__":
    main()
