#!/bin/sh set -e mkdir -p ./fonts ./fonts/static/ttf ./fonts/static/otf ./fonts/variable echo "Generating VFs" fontmake --keep-overlaps -g Sources/Anybody.glyphs -o variable --output-path ./fonts/variable/Anybody[slnt,wdth,wght].ttf echo "Post processing VFs" for ttf in ./fonts/variable/*.ttf do gftools fix-dsig --autofix $ttf; gftools fix-nonhinting $ttf "$ttf.fix"; mv "$ttf.fix" $ttf; gftools fix-unwanted-tables --tables MVAR $ttf woff2_compress $ttf done rm ./fonts/variable/*gasp* echo "Generating Static fonts" #Skia Pathops https://github.com/fonttools/skia-pathops fontmake --overlaps-backend pathops -g Sources/Anybody.glyphs -i -o ttf --output-dir ./fonts/static/ttf/ fontmake --overlaps-backend pathops -g Sources/Anybody.glyphs -i -o otf --output-dir ./fonts/static/otf/ # ============================================================================ # Autohinting ================================================================ echo "Post processing TTFs" ttfs=$(ls ./fonts/static/ttf/*.ttf) for ttf in $ttfs do gftools fix-dsig -f $ttf; ttfautohint $ttf $ttf.fix [ -f $ttf.fix ] && mv $ttf.fix $ttf gftools fix-hinting $ttf [ -f $ttf.fix ] && mv $ttf.fix $ttf done echo "Post processing OTFs" otfs=$(ls ./fonts/static/otf/*.otf) for otf in $otfs do gftools fix-dsig -f $otf done echo "Building webfonts" rm -rf ./fonts/web/woff2 ttfs=$(ls ./fonts/static/ttf/*.ttf) for ttf in $ttfs; do woff2_compress $ttf done mkdir -p ./fonts/web/woff2 woff2s=$(ls ./fonts/static/*/*.woff2) for woff2 in $woff2s; do mv $woff2 ./fonts/web/woff2/$(basename $woff2) done rm -rf ./fonts/web/woff ttfs=$(ls ./fonts/static/ttf/*.ttf) for ttf in $ttfs; do sfnt2woff-zopfli $ttf done mkdir -p ./fonts/web/woff woffs=$(ls ./fonts/static/*/*.woff) for woff in $woffs; do mv $woff ./fonts/web/woff/$(basename $woff) done rm -rf master_ufo/ instance_ufo/ echo "Complete!"