94 lines
2.7 KiB
Plaintext
94 lines
2.7 KiB
Plaintext
|
#!/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
|