mpp/depsolve: prepare for multi format support

Rename the parsing and process functions to have a format version
specific suffix. This should make it easy to add support for the
format version 2. Logic should be unchanged.
This commit is contained in:
Christian Kellner 2021-02-09 17:11:48 +00:00
parent 49e1800503
commit 7d72b2250c

View file

@ -130,7 +130,7 @@ def _manifest_enter(manifest, key, default):
return manifest[key]
def _manifest_parse(state, data):
def _manifest_parse_v1(state, data):
manifest = data
# Resolve "sources"."org.osbuild.files"."url".
@ -160,7 +160,7 @@ def _manifest_parse(state, data):
state.manifest_todo = manifest_todo
def _manifest_depsolve(state, stage):
def _manifest_process_v1(state, stage):
options = _manifest_enter(stage, "options", {})
options_mpp = _manifest_enter(options, "mpp-depsolve", {})
options_packages = _manifest_enter(options, "packages", [])
@ -178,6 +178,13 @@ def _manifest_depsolve(state, stage):
state.manifest_urls[dep["checksum"]] = url
def _manifest_depsolve_v1(state, src):
_manifest_parse_v1(state, src)
for stage in state.manifest_todo:
_manifest_process_v1(state, stage)
def _main_args(argv):
parser = argparse.ArgumentParser(description="Generate Test Manifests")
@ -202,13 +209,16 @@ def _main_state(args):
def _main_process(state):
src = json.load(sys.stdin)
_manifest_parse(state, src)
for stage in state.manifest_todo:
_manifest_depsolve(state, stage)
version = src.get("version", "1")
if version == "1":
_manifest_depsolve_v1(state, src)
else:
print(f"Unknown manifest version {version}", file=sys.stderr)
return 1
json.dump(state.manifest, sys.stdout, indent=2)
sys.stdout.write("\n")
return 0
def main() -> int: