mirror of
https://github.com/weiweihuanghuang/Work-Sans.git
synced 2024-11-22 03:53:04 +03:00
109 lines
2.8 KiB
Bash
109 lines
2.8 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
### WIP macOS build script for Work Sans Upright and Italic VF, based on a build script by Mike LaGuttuta
|
|
# To add brace trick glyphs, define them in $BraceGlyphs variable, and export the VF from Glyphs App in the same folder as the script
|
|
|
|
# Setting the Source and VF name, determine if it's for Italic or Upright source from the argument passed to this script
|
|
|
|
glyphsSource="WorkSans.glyphs WorkSans-Italic.glyphs"
|
|
|
|
for i in $glyphsSource; do
|
|
|
|
if [ $i == "WorkSans.glyphs" ]; then
|
|
style="Upright"
|
|
VFname="WorkSans-VF"
|
|
GXname="WorkSansGX"
|
|
BraceGlyphs="a,ae,e,s"
|
|
elif [ $i == "WorkSans-Italic.glyphs" ]; then
|
|
style="Italic"
|
|
VFname="WorkSans-Italic-VF"
|
|
GXname="WorkSansItalicGX"
|
|
BraceGlyphs="ae,e,s"
|
|
fi
|
|
|
|
# Generat -build version of .glyphs files with bracket tricks enabled, also add extra OpenType code for featureVariation to work
|
|
python tools/makeBuildGlyphsFile.py "${i}"
|
|
glyphsBuildSource=${i/".glyphs"/"-build.glyphs"}
|
|
|
|
# Call fontmake to generate variable font
|
|
echo "\tBuilding ${i}.glyphs..."
|
|
fontmake -o variable -g $glyphsBuildSource
|
|
echo "\t${VFname}.ttf generated"
|
|
|
|
# Clean up files
|
|
mv variable_ttf/${VFname}.ttf ${VFname}.ttf
|
|
rm $glyphsBuildSource
|
|
rm -rf master_ufo
|
|
rm -rf instance_ufo
|
|
rm -rf variable_ttf
|
|
|
|
ttx ${VFname}.ttf
|
|
rm ${VFname}.ttf
|
|
ttx ${GXname}.ttf
|
|
mv ${GXname}.ttx tools/${GXname}.ttx
|
|
|
|
# Copy brace glyphs from variable font generated from Glyphs App
|
|
# Run script to find and copy TTGlyph and glyphVariations elements from source file and copy into target file
|
|
# Could probablh be done just with fonttools...
|
|
echo "\tAdding brace glyphs..."
|
|
xml tr tools/replaceBraceGlyphs.xsl \
|
|
-s replacements=${GXname}.ttx \
|
|
-s replacenames=$BraceGlyphs \
|
|
${VFname}.ttx > ${VFname}-brace.ttx
|
|
|
|
# Clean up files
|
|
rm tools/${GXname}.ttx
|
|
rm ${VFname}.ttx
|
|
ttx ${VFname}-brace.ttx
|
|
rm ${VFname}-brace.ttx
|
|
mv ${VFname}-brace.ttf ${VFname}.ttf
|
|
|
|
# Add featureVariation for bracket trick glyphs
|
|
echo "\tAdding bracket glyphs..."
|
|
python tools/replaceBracketTrick.py ${VFname}.ttf "$1"
|
|
mv ${VFname}-swap.ttf ${VFname}.ttf
|
|
|
|
# Fix non-hinting and GASP table
|
|
echo "\tFixing non-hinting and GASP table"
|
|
gftools fix-nonhinting ${VFname}.ttf ${VFname}.ttf
|
|
gftools fix-gasp ${VFname}.ttf
|
|
|
|
# Clean up files
|
|
rm ${VFname}-backup-fonttools-prep-gasp.ttf
|
|
rm ${GXname}.ttf
|
|
done
|
|
|
|
|
|
# Fix VF Metadata
|
|
# VFfonts=""
|
|
# for i in *.ttf; do
|
|
# VFfonts+="$i "
|
|
# done
|
|
VFfonts="WorkSans-Italic-VF.ttf WorkSans-VF.ttf"
|
|
echo "\tFixing VF Family Metadata..."
|
|
python tools/gftools-fix-vf-meta.py $VFfonts
|
|
|
|
|
|
# Clean up VFs
|
|
for i in $VFfonts; do
|
|
rm "$i"
|
|
done
|
|
|
|
|
|
# Rename VFs
|
|
# for i in *.fix; do
|
|
# mv $i ${i/".ttf.fix"/".ttf"}
|
|
# done
|
|
VFfontsFix="WorkSans-Italic-VF.ttf.fix WorkSans-VF.ttf.fix"
|
|
for i in $VFfontsFix; do
|
|
mv $i ${i/".ttf.fix"/".ttf"}
|
|
done
|
|
|
|
|
|
# Fix DSIG
|
|
for i in $VFfonts; do
|
|
echo "\tFixing DSIG $i..."
|
|
gftools fix-dsig --autofix "$i"
|
|
done
|