|
12 | 12 | import sys |
13 | 13 | import logging |
14 | 14 | import os |
15 | | - |
16 | | -# TODO: make these commandline options |
17 | | -destdir = "/" |
18 | | -hookfilename = "vendor-hook" |
19 | | -cdifilename = "qualcomm.json" |
20 | | - |
21 | | -def setup_logging(): |
22 | | - level_name = os.environ.get("LOGLEVEL", "INFO").upper() |
23 | | - level = getattr(logging, level_name, logging.INFO) |
24 | | - logging.basicConfig( |
25 | | - level=level, |
26 | | - format="%(asctime)s %(levelname)s %(message)s", |
27 | | - ) |
28 | | - logging.debug("Logging initialized at level %s", level_name) |
| 15 | +import argparse |
| 16 | + |
| 17 | +def setup_logging(verbosity: int) -> None: |
| 18 | + level = logging.WARNING |
| 19 | + if verbosity == 1: |
| 20 | + level = logging.INFO |
| 21 | + elif verbosity >= 2: |
| 22 | + level = logging.DEBUG |
| 23 | + logging.basicConfig(format="%(levelname)s: %(message)s", level=level) |
| 24 | + |
| 25 | +def parse_args(): |
| 26 | + parser = argparse.ArgumentParser(description="Generate Qualcomm CDI and hook script") |
| 27 | + parser.add_argument("-d", "--destdir", default="/", help="Destination root directory (default: %(default)s)") |
| 28 | + parser.add_argument("-H", "--hookfilename", default="vendorhook", help="Hook script filename (default: %(default)s)") |
| 29 | + parser.add_argument("-c", "--cdifilename", default="qualcomm.json", help="CDI JSON filename (default: %(default)s)") |
| 30 | + parser.add_argument("-v", "--verbose", action="count", default=0, help="Increase verbosity (-v, -vv)") |
| 31 | + return parser.parse_args() |
29 | 32 |
|
30 | 33 | def find_devicenodes(deviceglob): |
31 | 34 | logging.debug("Globbing device nodes: %s", deviceglob) |
@@ -74,8 +77,15 @@ def get_devicenode_index(nodename): |
74 | 77 | return int(nodeindex.group()) if nodeindex else None |
75 | 78 |
|
76 | 79 | def main() -> int: |
77 | | - setup_logging() |
| 80 | + args = parse_args() |
| 81 | + setup_logging(args.verbose) |
78 | 82 | logging.info("Starting Qualcomm CDI generation") |
| 83 | + logging.info("Config: destdir=%s, hookfilename=%s, cdifilename=%s", args.destdir, args.hookfilename, args.cdifilename) |
| 84 | + |
| 85 | + # Use CLI-configured values |
| 86 | + destdir = args.destdir |
| 87 | + hookfilename = args.hookfilename |
| 88 | + cdifilename = args.cdifilename |
79 | 89 |
|
80 | 90 | # Find rendernodes and create entries for them |
81 | 91 | rendernodes = find_devicenodes('/dev/dri/renderD*') |
|
0 commit comments