Unit font
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

33 lines
642 B

#!/usr/bin/env bash
# Validate a font file with FontForge.
if ! type fontforge &> /dev/null; then echo "ERROR: Missing dependency: fontforge" 1>&2; exit 1; fi
name=$1
basename=$(basename "$name" .sfdir)
echo -e "\e[1;37mValidating ${basename}... \e[0m"
output=$(fontforge --quiet -lang=py -script - "$name" <<EOF
import fontforge;
import sys;
font = fontforge.open(sys.argv[1]);
bitmask = font.validate();
if bitmask != 0:
exit(42);
EOF
)
error=$?
if [ "x$error" != "x0" ]; then
echo -e "\e[1;31mError in ${basename}.\e[0m"
if [ "x$error" = "x42" ]; then
echo "Font ${basename}.sfd is not valid"
fi
fi
exit 0
exit $error