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()