font-patcher: Fix behavior when trying to patch non-font files

[why]
When the file specified to be patched is not a font file the patcher run
errors out with an out of index runtime error:

Traceback (most recent call last):
  File "/home/fini/extra/git/nerd-fonts/font-patcher", line 2155, in <module>
    main()
  File "/home/fini/extra/git/nerd-fonts/font-patcher", line 2147, in main
    patcher.generate(sourceFonts)
  File "/home/fini/extra/git/nerd-fonts/font-patcher", line 415, in generate
    sourceFont = sourceFonts[0]
                 ~~~~~~~~~~~^^^
IndexError: list index out of range

[how]
Do not assume that the specified file will be a font file but rather
check if fontforge detects a font in the file and error out if there is
no font found.

Fixes: #1647

Reported-by: Kristopher James Kent <kris@kjkent.dev>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
This commit is contained in:
Fini Jastrow 2024-06-02 08:23:50 +02:00 committed by Fini
parent f647334ead
commit b95c671ccb

View file

@ -6,7 +6,7 @@
from __future__ import absolute_import, print_function, unicode_literals
# Change the script version when you edit this script:
script_version = "4.14.3"
script_version = "4.14.4"
version = "3.2.1"
projectName = "Nerd Fonts"
@ -2127,6 +2127,9 @@ def main():
sourceFonts = []
all_fonts = fontforge.fontsInFile(args.font)
if not all_fonts:
logger.critical("Can not find any fonts in '%s'", args.font)
sys.exit(1)
for i, subfont in enumerate(all_fonts):
if len(all_fonts) > 1:
print("\n")