added directory mode
This commit is contained in:
parent
7647f870a6
commit
752cf011c3
40
main.py
40
main.py
@ -16,21 +16,51 @@ description = """Examples:
|
|||||||
|
|
||||||
- Transparent background:
|
- Transparent background:
|
||||||
python main.py schema.xml -o out.png -c transparent.json
|
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__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser(description=description, formatter_class=argparse.RawTextHelpFormatter)
|
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("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("-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("-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", "--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()
|
args = parser.parse_args()
|
||||||
|
|
||||||
output = args.output
|
if args.directory:
|
||||||
if output is None:
|
if not os.path.isdir(args.schema):
|
||||||
output = os.path.splitext(args.schema)[0] + ".png"
|
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)
|
else:
|
||||||
schema.save(output)
|
output = args.output
|
||||||
|
if output is None:
|
||||||
|
output = os.path.splitext(args.schema)[0] + ".png"
|
||||||
|
|
||||||
|
processFile(args.schema, output, args.config, args.display)
|
Loading…
Reference in New Issue
Block a user