Skip to content

Commit 4fc346e

Browse files
committed
Add check for font availability
1 parent da79403 commit 4fc346e

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

kicad-diff.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
use_poppler = True
7979
# Tools/Compatibility
8080
CONVERT = 'convert'
81+
FONT = ''
8182
# Compress SVG files using scour (KiRi mode)
8283
use_scour = False
8384
DEFAULT_LAYER_NAMES = {
@@ -477,7 +478,7 @@ def create_diff_stereo(old_name, new_name, diff_name, font_size, layer, resoluti
477478
extra_name = ' [diff page size]'
478479
else:
479480
extra_name = extent = ''
480-
text = ' -font helvetica -pointsize '+font_size+' -draw "text 10,'+font_size+' \''+adapt_name(name_layer)+extra_name+'\'" '
481+
text = ' -font '+FONT+' -pointsize '+font_size+' -draw "text 10,'+font_size+' \''+adapt_name(name_layer)+extra_name+'\'" '
481482
command = ['bash', '-c',
482483
'( '+CONVERT+' "'+new_name+'"'+extent+' miff:- ; ' + CONVERT +
483484
' "'+old_name+'"'+extent+' miff:- ) | ' + CONVERT +
@@ -519,7 +520,7 @@ def create_diff_stereo_colored(old_name, new_name, diff_name, font_size, layer,
519520
' -opaque black -transparent white "'+added+'"']
520521
run_command(command)
521522
run_command([CONVERT, old_name, added, '-composite', removed, '-composite',
522-
'-font', 'helvetica', '-pointsize', font_size, '-draw',
523+
'-font', FONT, '-pointsize', font_size, '-draw',
523524
"text 10,"+font_size+" '"+adapt_name(name_layer)+extra_name+"'",
524525
diff_name])
525526
include = True
@@ -557,7 +558,7 @@ def create_diff_stat(old_name, new_name, diff_name, font_size, layer, resolution
557558
if args.threshold and errors > args.threshold:
558559
logger.error('Difference for `{}` is not acceptable ({} > {})'.format(name_layer, errors, args.threshold))
559560
exit(DIFF_TOO_BIG)
560-
cmd = [CONVERT, diff_name, '-font', 'helvetica', '-pointsize', font_size, '-draw',
561+
cmd = [CONVERT, diff_name, '-font', FONT, '-pointsize', font_size, '-draw',
561562
'text 10,'+font_size+" '"+adapt_name(name_layer)+extra_name+"'", diff_name]
562563
logger.debug('Executing: '+str(cmd))
563564
call(cmd)
@@ -879,6 +880,16 @@ def get_layer(line):
879880
elif which('convert') is None:
880881
logger.error('No convert or magick command, install ImageMagick')
881882
exit(MISSING_TOOLS)
883+
# Check for available fonts
884+
cmd = ['identify', '-list', 'font']
885+
fonts = run_command(cmd)
886+
for font in ['helvetica', 'Open-Sans-Regular', 'Roboto']:
887+
if font in fonts:
888+
FONT = font
889+
break
890+
if not FONT:
891+
logger.error('No compatible Font found, install one of helvetica, Open-Sans-Regular or Roboto')
892+
exit(MISSING_TOOLS)
882893
use_poppler = not args.force_gs
883894
if which('pdftoppm') is None:
884895
if which('gs') is None:

0 commit comments

Comments
 (0)