12345678910111213141516171819202122232425262728 |
- #!/bin/bash
- set -o errexit -o nounset -o pipefail
- cd "$(dirname "$0")/.."
- glyphs_file=${FIRACODE_GLYPHS_FILE:-"FiraCode.glyphs"}
- code_blocks=()
- for feat in "$@"; do
- file="features/${feat}.fea"
- if [ ! -f "${file}" ]; then
- echo "Error: No file for feature ${feat} found!" >&2
- exit 1
- fi
- # don't grab the "lookup" surroundings or comments or whitespace lines
- code="$(grep -v '^[[:space:]]*lookup\|^[[:space:]]*}\|^[[:space:]]*#\|^[[:space:]]*$' "${file}")" \
- || { echo "Error: No code for feature ${feat} found!" >&2; exit 1; }
- code_blocks+=("$(tr '\n' ' ' <<< "${code}")")
- done
- # code block is one line above name declaration
- linenum=$(sed -n "/name = calt;/=" "${glyphs_file}")
- linenum=$((linenum - 1))
- # replace end of line (";) with code on specified line number
- sed -i -e "${linenum}s@\";\$@\n${code_blocks[*]}\";@" "${glyphs_file}"
|