From 752cf011c353fa4428c6b948dff6eed87ce27c7e Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Sun, 24 Mar 2024 14:07:53 +0100 Subject: [PATCH] added directory mode --- main.py | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 144b2db..4098951 100644 --- a/main.py +++ b/main.py @@ -16,21 +16,51 @@ description = """Examples: - Transparent background: python main.py schema.xml -o out.png -c transparent.json + + - Directory mode: + python main.py -d -o images/ schemas/ """ +def processFile(inPath, outPath, confPath, display): + schema = InstructionSetSchema(inPath, confPath, display) + schema.save(outPath) + + if __name__ == "__main__": parser = argparse.ArgumentParser(description=description, formatter_class=argparse.RawTextHelpFormatter) parser.add_argument("schema", help="Path to the schema description. Accepted formats are: YAML, JSON and XML") parser.add_argument("-o", "--output", help="Output path. By default, the output file will have the same name as the schema description with the extension .png") parser.add_argument("-c", "--config", help="Path to the config file", default="config.json") parser.add_argument("-D", "--display", help="Enable pygame display of the result", action="store_true") + parser.add_argument("-d", "--directory", help="Enable directory mode. If set, the input and output paths are directories and all files inside the input directory are processed", action="store_true") args = parser.parse_args() - output = args.output - if output is None: - output = os.path.splitext(args.schema)[0] + ".png" + if args.directory: + if not os.path.isdir(args.schema): + print(f"{args.schema} is not a directory") + exit(-1) + + output = args.output + if output is None: + output = args.schema + + if not os.path.isdir(output): + print(f"{output} is not a directory") + exit(-1) + + paths = os.listdir(args.schema) + for path in paths: + inPath = os.path.join(args.schema, path) + outPath = os.path.join(output, path) + outPath = os.path.splitext(outPath)[0] + ".png" + + processFile(inPath, outPath, args.config, args.display) - schema = InstructionSetSchema(args.schema, args.config, args.display) - schema.save(output) \ No newline at end of file + else: + output = args.output + if output is None: + output = os.path.splitext(args.schema)[0] + ".png" + + processFile(args.schema, output, args.config, args.display) \ No newline at end of file