diff --git a/package_release.py b/package_release.py index 3c1145b3ba1deae1ae9ed1481908e6c56bef514d..bb1d6fcd0f6084478362e3e841c90c511879285b 100755 --- a/package_release.py +++ b/package_release.py @@ -72,6 +72,51 @@ def copy_files(files, input_dir, subdir, output_dir, outlocal_dir): return md5sums +def generate_metadata( + machine, + version, + artifacts_image, + sdk, + output_dir, + outlocal_dir, +): + """Generates a metainfo.json for the release""" + + # Join filepath for metadata + + if output_dir is not None: + filepath = os.path.join(output_dir, machine, "metainfo.json") + elif outlocal_dir is not None: + filepath = os.path.join(outlocal_dir, machine, "metainfo.json") + else: + print("Error: Filepath is empty") + return -1 + + # Collect metadata and write to metainfo.json + + for artifact in artifacts_image: + if artifact.endswith(machine + ".tar.gz"): + image_general = artifact + elif artifact.endswith(machine + ".wic"): + image_wic = artifact + + metadata = dict() + + metadata["images"] = dict() + metadata["version"] = version + metadata["machine"] = machine + metadata["sdk"] = sdk + + if image_general is not None: + metadata["images"]["general"] = image_general + + if image_wic is not None: + metadata["images"]["wic"] = image_wic + + with open(filepath, "w", encoding="utf-8") as file: + file.write(json.dumps(metadata)) + + def main(): parser = argparse.ArgumentParser() parser.add_argument( @@ -188,6 +233,16 @@ def main(): md5sums, ) + # Generate metadata + generate_metadata( + machine, + version, + artifacts_image, + sdkname, + output_dir, + outlocal_dir, + ) + # Handle SDK if available if args.sdk_dir is not None: sdkfiles = glob.glob(os.path.join(args.sdk_dir, sdkname + "*"))