#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
source_dir="${1:-${repo_root}/upstream-src}"
out_dir="${2:-${repo_root}/upstream}"
work_source="${repo_root}/debian/.build-symbols-source"
rm -rf "${work_source}"
cp -a "${source_dir}" "${work_source}"
trap 'rm -rf "${work_source}"' EXIT
source_dir="${work_source}"
template="${source_dir}/src/unpatched-fonts/NerdFontsSymbolsOnly/NerdFontsSymbolsNerdFontBlank.sfd"
config="${source_dir}/src/unpatched-fonts/NerdFontsSymbolsOnly/config.cfg"
fontforge_bin="${FONTFORGE:-fontforge}"

export LC_ALL="${LC_ALL:-C.UTF-8}"
export LANG="${LANG:-C.UTF-8}"

if ! command -v "${fontforge_bin}" >/dev/null; then
  echo "fontforge is required to rebuild Symbols Nerd Font" >&2
  exit 1
fi

(cd "${source_dir}/bin/scripts" && python3 generate-original-source.py)

rm -rf "${out_dir}"
mkdir -p "${out_dir}"

flags=(
  --codicons
  --octicons
  --powersymbols
  --pomicons
  --powerline
  --powerlineextra
  --glyphdir "${source_dir}/src/glyphs"
  --outputdir "${out_dir}"
  --extension ttf
  --quiet
  --makegroups 0
  --no-progressbars
)

# Font Logos and glyph sets already packaged by Debian are intentionally omitted.
"${fontforge_bin}" -script "${source_dir}/font-patcher" "${template}" "${flags[@]}" --configfile "${config}"
"${fontforge_bin}" -script "${source_dir}/font-patcher" "${template}" "${flags[@]}" --mono

cp "${source_dir}/10-nerd-font-symbols.conf" "${out_dir}/"
cp "${source_dir}/src/unpatched-fonts/NerdFontsSymbolsOnly/LICENSE" "${out_dir}/"
cp "${source_dir}/src/unpatched-fonts/NerdFontsSymbolsOnly/README.md" "${out_dir}/"

test -f "${out_dir}/SymbolsNerdFont-Regular.ttf"
test -f "${out_dir}/SymbolsNerdFontMono-Regular.ttf"
