94 lines
2.7 KiB
Bash
Executable File
94 lines
2.7 KiB
Bash
Executable File
#!/bin/bash -e
|
||
|
||
source venv/bin/activate
|
||
|
||
# ============================================================================
|
||
# VARIABLE FONT ==============================================================
|
||
|
||
# variable font
|
||
rm -rf distr/variable_ttf
|
||
fontmake -g FiraCode.glyphs -o variable --output-dir distr/variable_ttf
|
||
|
||
# -------------------------------------------------------------
|
||
# fix variable font metadata as needed ------------------------
|
||
|
||
firaCodeVF=distr/variable_ttf/FiraCode-VF.ttf
|
||
|
||
# fix variable font metadata – very important
|
||
gftools fix-vf-meta $firaCodeVF
|
||
|
||
# other fixes for metadata and hinting
|
||
gftools fix-nonhinting $firaCodeVF $firaCodeVF
|
||
gftools fix-gasp --autofix $firaCodeVF
|
||
gftools fix-dsig --autofix $firaCodeVF
|
||
|
||
# cleanup of temp files
|
||
tempFiles=$(ls distr/variable_ttf/*.fix && ls distr/variable_ttf/*-gasp*)
|
||
for temp in $tempFiles
|
||
do
|
||
rm -rf $temp
|
||
done
|
||
|
||
# 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 |