tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

subset.sh (1477B)


      1 #!/bin/bash
      2 #
      3 # Produces subset font files for testing the `text-spacing-trim` property.
      4 #
      5 # Requires `pyftsubset` from [fonttools]. If [uv] is installed, this script can
      6 # run without installing [fonttools] globally.
      7 #
      8 # [fonttools]: https://github.com/fonttools/fonttools
      9 # [uv]: https://docs.astral.sh/uv/
     10 #
     11 range="--unicodes=20-7E,2018-201F,56FD,6C34,3000-301F,30FB,FF01-FF1F,FF5B-FF65"
     12 subrange="--unicodes=20-7E,56FD,FF08-FF09"
     13 features="--layout-features+=halt,fwid,hwid,palt,pwid,vhal,vpal"
     14 features_chws="$features,chws,vchw"
     15 ext=".otf"
     16 if [[ -z "$subsetter" ]]; then
     17  if command -v uvx &>/dev/null; then
     18    subsetter="uvx --from fonttools pyftsubset"
     19  else
     20    subsetter="pyftsubset"
     21  fi
     22 fi
     23 subsetter=${subsetter:-pyftsubset}
     24 for path in "$@"; do
     25  filename="$(basename -- "$path")"
     26  stem="${filename%.*}"
     27  output_halt="$stem-subset-halt"
     28  output_chws="$stem-subset-chws"
     29  output_min="$stem-subset-halt-min"
     30  (set -x;
     31    $subsetter "$path" $range $features --output-file="$output_halt$ext"
     32    $subsetter "$path" $range $features_chws --output-file="$output_chws$ext"
     33    $subsetter "$output_halt$ext" $subrange $features --output-file="$output_min$ext"
     34    $subsetter "$output_halt$ext" --unicodes=3002 $features --output-file="$output_halt-3002$ext"
     35    $subsetter "$output_halt$ext" --unicodes=300C $features --output-file="$output_halt-300C$ext"
     36    $subsetter "$output_halt$ext" --unicodes=FF1A $features --output-file="$output_halt-FF1A$ext"
     37  )
     38 done