blob: c6731b49fac6811434b5511113dd2f3176b50fb6 [file] [log] [blame]
#!/usr/bin/env fuchsia-vendored-python
# Copyright 2023 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import argparse
import os.path
import json
import sys
import tempfile
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--output", help="Write to this file")
parser.add_argument(
"--paths", action="append", help="package manifest lists"
)
args = parser.parse_args()
out = tempfile.NamedTemporaryFile(
"w", dir=os.path.dirname(args.output), delete=False
)
try:
manifest_paths = set()
for package_manifest_list_path in args.paths:
with open(package_manifest_list_path, "r") as f:
package_manifest_list = json.load(f)
manifest_paths.update(
package_manifest_list["content"]["manifests"]
)
out_package_manifest_list = {
"content": {"manifests": sorted(manifest_paths)},
"version": "1",
}
out.write(
json.dumps(out_package_manifest_list, indent=2, sort_keys=True)
)
out.close()
os.replace(out.name, args.output)
finally:
try:
os.unlink(out.name)
except FileNotFoundError:
pass
if __name__ == "__main__":
sys.exit(main())