From 0fe5c4e5adc5636b05ed71383dfdb0f9b14540bb Mon Sep 17 00:00:00 2001 From: Dmitry Kozlyuk Date: Fri, 8 Jan 2021 05:47:21 +0300 Subject: [PATCH] buildtools: allow multiple input files in pmdinfogen Process any number of input object files and write a unified output. Signed-off-by: Dmitry Kozlyuk --- buildtools/pmdinfogen.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/buildtools/pmdinfogen.py b/buildtools/pmdinfogen.py index 474168f214..965c08945e 100755 --- a/buildtools/pmdinfogen.py +++ b/buildtools/pmdinfogen.py @@ -197,7 +197,9 @@ def dump_drivers(drivers, file): def parse_args(): parser = argparse.ArgumentParser() parser.add_argument("format", help="object file format, 'elf' or 'coff'") - parser.add_argument("input", help="input object file path or '-' for stdin") + parser.add_argument( + "input", nargs='+', help="input object file path or '-' for stdin" + ) parser.add_argument("output", help="output C file path or '-' for stdout") return parser.parse_args() @@ -233,13 +235,16 @@ def open_output(path): def main(): args = parse_args() + if args.input.count('-') > 1: + raise Exception("'-' input cannot be used multiple times") if args.format == "elf" and "ELFFile" not in globals(): raise Exception("elftools module not found") - image = load_image(args.format, args.input) - drivers = load_drivers(image) output = open_output(args.output) - dump_drivers(drivers, output) + for path in args.input: + image = load_image(args.format, path) + drivers = load_drivers(image) + dump_drivers(drivers, output) if __name__ == "__main__": -- 2.20.1