@samitouri / QOSamiQemu / commits / 915f990a96

scripts/modinfo: use argparse

This will allow to tweak argument handling more easily next. Acked-by: Mark Cave-Ayland <mark.caveayland@nutanix.com> Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Marc-André Lureau committed Jan 20, 2026 at 11:35 UTC 915f990a962ef9fa3935edf9ace69eccc6063412
1 file changed +14 -9
scripts/modinfo-generate.py
+14 -9
@@ -1,5 +1,6 @@
1 #!/usr/bin/env python3
2
3 +import argparse
4 import os
5 import sys
6 from typing import Optional
@@ -79,24 +80,28 @@ def print_post() -> None:
80 print(" /* end of list */")
81 print("}};")
82
82 -def main(args: list[str]) -> None:
83 - if len(args) < 3 or args[0] != '--devices':
84 - print('Expected: modinfo-generate.py --devices '
85 - 'config-device.mak [modinfo files]', file=sys.stderr)
86 - exit(1)
83 +def main() -> None:
84 + parser = argparse.ArgumentParser(
85 + description='Generate C code for QEMU module info'
86 + )
87 + parser.add_argument('--devices', required=True,
88 + help='path to config-device.mak')
89 + parser.add_argument('modinfo', nargs='+',
90 + help='modinfo files to process')
91 + args = parser.parse_args()
92
93 # get all devices enabled in kconfig, from *-config-device.mak
94 enabled = set()
90 - with open(args[1]) as file:
95 + with open(args.devices) as file:
96 for line in file.readlines():
97 config = line.split('=')
98 if config[1].rstrip() == 'y':
94 - enabled.add(config[0][7:]) # remove CONFIG_
99 + enabled.add(config[0][7:]) # remove CONFIG_
100
101 deps = set()
102 modules = set()
103 print_pre()
99 - for modinfo in args[2:]:
104 + for modinfo in args.modinfo:
105 with open(modinfo) as f:
106 lines = f.readlines()
107 print(f" /* {modinfo} */")
@@ -116,4 +121,4 @@ def main(args: list[str]) -> None:
121 exit(1)
122
123 if __name__ == "__main__":
119 - main(sys.argv[1:])
124 + main()