|
|
@@ -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}
|
|
|
"""
|
|
|
|
|
|
|