#!/bin/bash -e [ -d venv ] && source venv/bin/activate # ============================================================================ # VARIABLE FONT ============================================================== # variable font firaCodeVF=distr/variable_ttf/FiraCode-VF.ttf rm -rf $firaCodeVF fontmake -g FiraCode.glyphs -o variable --output-dir distr/variable_ttf # fix variable font metadata – very important gftools fix-vf-meta $firaCodeVF mv $firaCodeVF.fix $firaCodeVF # other fixes for metadata and hinting gftools fix-nonhinting $firaCodeVF $firaCodeVF gftools fix-gasp --autofix $firaCodeVF mv $firaCodeVF.fix $firaCodeVF gftools fix-dsig --autofix $firaCodeVF # cleanup of temp files rm -rf distr/variable_ttf/*-gasp* # TODO (late 2019?): use TTFautohint-VF for variable font (current support is minimal) # ============================================================================ # STATIC FONTS =============================================================== rm -rf distr/ttf fontmake -g FiraCode.glyphs -o ttf --output-dir distr/ttf -i rm -rf distr/otf fontmake -g FiraCode.glyphs -o otf --output-dir distr/otf -i # ------------------------------------------------------------- # Autohinting ------------------------------------------------- statics=$(ls distr/ttf/*.ttf) for file in $statics; do echo "fix DSIG in " ${file} gftools fix-dsig --autofix ${file} echo "TTFautohint " ${file} # autohint with detailed info hintedFile=${file/".ttf"/"-hinted.ttf"} ttfautohint -I ${file} ${hintedFile} --stem-width-mode nnn --composites --windows-compatibility cp ${hintedFile} ${file} rm -rf ${hintedFile} done # ============================================================================ # Build woff2 fonts ========================================================== # requires woff2_compress (get from https://github.com/bramstein/homebrew-webfonttools) rm -rf distr/woff2 ttfs=$(ls distr/*/*.ttf) for ttf in $ttfs; do woff2_compress $ttf done mkdir -p distr/woff2 woff2s=$(ls distr/*/*.woff2) for woff2 in $woff2s; do mv $woff2 distr/woff2/$(basename $woff2) done # ============================================================================ # Build woff fonts =========================================================== # requires sfnt2woff-zopfli (get from https://github.com/bramstein/homebrew-webfonttools) rm -rf distr/woff ttfs=$(ls distr/*/*.ttf) for ttf in $ttfs; do sfnt2woff-zopfli $ttf done mkdir -p distr/woff woffs=$(ls distr/*/*.woff) for woff in $woffs; do mv $woff distr/woff/$(basename $woff) done