[PATCH v8 06/24] check-variable-fonts.py: add a helper to display instructions

Mauro Carvalho Chehab
2025-09-18T11:55:06Z

Use lib docstring to output the comments via --help/-h. With
that, update the default instructions to recomment it instead
of asking the user to read the source code.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
tools/docs/check-variable-fonts.py | 12 +++++++++++-
tools/docs/lib/latex_fonts.py | 13 +++++++++----
2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/tools/docs/check-variable-fonts.py b/tools/docs/check-variable-fonts.py
index 79b28f0f7d85..c0997d6861dc 100755
--- a/tools/docs/check-variable-fonts.py
+++ b/tools/docs/check-variable-fonts.py
@@ -12,11 +12,21 @@ Detect problematic Noto CJK variable fonts.
or more details, see lib/latex_fonts.py.
"""

+import argparse
import sys

from lib.latex_fonts import LatexFontChecker

-msg = LatexFontChecker().check()
+checker = LatexFontChecker()
+
+parser=argparse.ArgumentParser(description=checker.description(),
+ formatter_class=argparse.RawTextHelpFormatter)
+parser.add_argument("--deny-vf",
+ help="XDG_CONFIG_HOME dir containing fontconfig/fonts.conf file")
+
+args=parser.parse_args()
+
+msg = LatexFontChecker(args.deny_vf).check()
if msg:
print(msg)

diff --git a/tools/docs/lib/latex_fonts.py b/tools/docs/lib/latex_fonts.py
index 81358a70f320..29317f8006ea 100755
--- a/tools/docs/lib/latex_fonts.py
+++ b/tools/docs/lib/latex_fonts.py
@@ -105,14 +105,18 @@ class LatexFontChecker:
translations.
"""

- def __init__(self):
- deny_vf = os.environ.get('FONTS_CONF_DENY_VF', "~/deny-vf")
+ def __init__(self, deny_vf=None):
+ if not deny_vf:
+ deny_vf = os.environ.get('FONTS_CONF_DENY_VF', "~/deny-vf")

self.environ = os.environ.copy()
self.environ['XDG_CONFIG_HOME'] = os.path.expanduser(deny_vf)

self.re_cjk = re.compile(r"([^:]+):\s*Noto\s+(Sans|Sans Mono|Serif) CJK")

+ def description(self):
+ return __doc__
+
def get_noto_cjk_vf_fonts(self):
"""Get Noto CJK fonts"""

@@ -154,8 +158,9 @@ class LatexFontChecker:
For CJK pages in PDF, they need to be hidden from XeTeX by denylisting.
Or, CJK pages can be skipped by uninstalling texlive-xecjk.

- For more info on denylisting, other options, and variable font, see header
- comments of {rel_file}.
+ For more info on denylisting, other options, and variable font, run:
+
+ tools/docs/check-variable-fonts.py -h
""")
msg += "=" * 77

--
2.51.0