diff options
Diffstat (limited to 'lib/python/qmk/painter.py')
-rw-r--r-- | lib/python/qmk/painter.py | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/lib/python/qmk/painter.py b/lib/python/qmk/painter.py index 512a486ce8..ed0372c163 100644 --- a/lib/python/qmk/painter.py +++ b/lib/python/qmk/painter.py @@ -3,6 +3,7 @@ import datetime import math import re +from pathlib import Path from string import Template from PIL import Image, ImageOps @@ -137,10 +138,31 @@ def _render_image_metadata(metadata): return "\n".join(lines) -def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, command): +def command_args_str(cli, command_name): + """Given a command name, introspect milc to get the arguments passed in.""" + + args = {} + max_length = 0 + for arg_name, was_passed in cli.args_passed[command_name].items(): + max_length = max(max_length, len(arg_name)) + + val = getattr(cli.args, arg_name.replace("-", "_")) + + # do not leak full paths, keep just file name + if isinstance(val, Path): + val = val.name + + args[arg_name] = val + + return "\n".join(f"// {arg_name.ljust(max_length)} | {val}" for arg_name, val in args.items()) + + +def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, command_name): if font_metadata is not None and image_metadata is not None: raise ValueError("Cant generate subs for font and image at the same time") + args = command_args_str(cli, command_name) + subs = { "year": datetime.date.today().strftime("%Y"), "input_file": cli.args.input.name, @@ -148,7 +170,8 @@ def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, co "byte_count": len(out_bytes), "bytes_lines": render_bytes(out_bytes), "format": cli.args.format, - "generator_command": command, + "generator_command": command_name.replace("_", "-"), + "command_args": args, } if font_metadata is not None: @@ -167,7 +190,7 @@ def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, co subs.update({ "generated_type": "image", "var_prefix": "gfx", - "generator_command": command, + "generator_command": command_name, "metadata": _render_image_metadata(image_metadata), }) @@ -183,7 +206,8 @@ license_template = """\ // Copyright ${year} QMK -- generated source code only, ${generated_type} retains original copyright // SPDX-License-Identifier: GPL-2.0-or-later -// This file was auto-generated by `${generator_command}` +// This file was auto-generated by `${generator_command}` with arguments: +${command_args} """ |