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 |