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:
parent
49e1800503
commit
7d72b2250c
1 changed files with 16 additions and 6 deletions
|
|
@ -130,7 +130,7 @@ def _manifest_enter(manifest, key, default):
|
||||||
return manifest[key]
|
return manifest[key]
|
||||||
|
|
||||||
|
|
||||||
def _manifest_parse(state, data):
|
def _manifest_parse_v1(state, data):
|
||||||
manifest = data
|
manifest = data
|
||||||
|
|
||||||
# Resolve "sources"."org.osbuild.files"."url".
|
# Resolve "sources"."org.osbuild.files"."url".
|
||||||
|
|
@ -160,7 +160,7 @@ def _manifest_parse(state, data):
|
||||||
state.manifest_todo = manifest_todo
|
state.manifest_todo = manifest_todo
|
||||||
|
|
||||||
|
|
||||||
def _manifest_depsolve(state, stage):
|
def _manifest_process_v1(state, stage):
|
||||||
options = _manifest_enter(stage, "options", {})
|
options = _manifest_enter(stage, "options", {})
|
||||||
options_mpp = _manifest_enter(options, "mpp-depsolve", {})
|
options_mpp = _manifest_enter(options, "mpp-depsolve", {})
|
||||||
options_packages = _manifest_enter(options, "packages", [])
|
options_packages = _manifest_enter(options, "packages", [])
|
||||||
|
|
@ -178,6 +178,13 @@ def _manifest_depsolve(state, stage):
|
||||||
state.manifest_urls[dep["checksum"]] = url
|
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):
|
def _main_args(argv):
|
||||||
parser = argparse.ArgumentParser(description="Generate Test Manifests")
|
parser = argparse.ArgumentParser(description="Generate Test Manifests")
|
||||||
|
|
||||||
|
|
@ -202,13 +209,16 @@ def _main_state(args):
|
||||||
|
|
||||||
def _main_process(state):
|
def _main_process(state):
|
||||||
src = json.load(sys.stdin)
|
src = json.load(sys.stdin)
|
||||||
_manifest_parse(state, src)
|
version = src.get("version", "1")
|
||||||
|
if version == "1":
|
||||||
for stage in state.manifest_todo:
|
_manifest_depsolve_v1(state, src)
|
||||||
_manifest_depsolve(state, stage)
|
else:
|
||||||
|
print(f"Unknown manifest version {version}", file=sys.stderr)
|
||||||
|
return 1
|
||||||
|
|
||||||
json.dump(state.manifest, sys.stdout, indent=2)
|
json.dump(state.manifest, sys.stdout, indent=2)
|
||||||
sys.stdout.write("\n")
|
sys.stdout.write("\n")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue