# Maintainer: Gavin Luo <lunt.luo@gmail.com>

pkgbase=ttf-sim-xi-zhi
pkgname=('ttf-sim-xi-hei' 'ttf-sim-zhi-song')
pkgver=1.103
pkgrel=1
pkgdesc='新晰黑体＆新致宋体：「霞鹜新晰黑」「霞鹜新致宋」兼容 Windows 内置「黑体」「宋体」度量数据和字符集的版本，基于 IPA Gothic、IPA Mincho 衍生。'
url='https://github.com/lxgw/SimXiZhi'
arch=('any')
license=('IPA')
source=(SimXiHei-"${pkgver}".ttf::"${url}"/releases/download/v"${pkgver}"/SimXiHei.ttf
    SimZhiSong-"${pkgver}".ttf::"${url}"/releases/download/v"${pkgver}"/SimZhiSong.ttf
    LICENSE-"${pkgver}"::https://raw.githubusercontent.com/lxgw/SimXiZhi/refs/tags/v1.026/IPA_Font_License_Agreement_v1.0.txt)
b2sums=('a22ed6486141f9c300587a312518302524f53d269827f01b2c9d1af049f03b894567ebdbb74889c66ffabb5667a97c7a17154fe3ade6d1e1e3d9ba3ad0b98f4e'
        'a8056838cfdd0efe1ef3845bdd5a8223d2c8f6064527467b07b5a2dc7da0eaf95674d098e3149ff230ab4cb18b6e0aafdfe9ae829f2574ffe084d757ca88ea8e'
        'ccb79bec5d352b18591f925ddbbaf6d86a6274bfbbea318e126690e5b52ee8be80d2deb99ab7e5b5b1194e2b8c8ee47464713b89e75c629dd462f1a80691e38d')

declare -A _alias_map=(
    [SimXiHei]='SimHei 黑体'
    [SimZhiSong]='SimSun 宋体'
)

for _pkgname in "${pkgname[@]}"; do
    case "${_pkgname}" in
    "ttf-sim-xi-hei")
        _desc='新晰黑体：「霞鹜新晰黑」兼容 Windows 内置「黑体」度量数据和字符集的版本，基于 IPA Gothic 衍生。'
        ;;
    "ttf-sim-zhi-song")
        _desc='新致宋体：「霞鹜新致宋」兼容 Windows 内置「宋体」度量数据和字符集的版本，基于 IPA Mincho 衍生。'
        ;;
    esac

    _fontname=$(sed -r 's/(^|-)(\w)/\U\2/g' <<<"${_pkgname//ttf-/}")
    _aliases=${_alias_map[$_fontname]}
    _family=$_fontname

    eval "package_${_pkgname}() {
        pkgdesc='${_desc}'
        replaces=('${_pkgname}-plus')
        _package '${_fontname}' '${_family}' '${_aliases}'
    }"
done

_package() {
    local fontname=$1
    install -Dm644 "${srcdir}/${fontname}-${pkgver}".ttf "${pkgdir}"/usr/share/fonts/TTF/"${fontname}".ttf
    install -Dm644 "${srcdir}/LICENSE-${pkgver}" "${pkgdir}"/usr/share/licenses/"${pkgname}"/LICENSE

    mkdir -p "${pkgdir}"/usr/share/fontconfig/conf.avail
    local config_file="${pkgdir}"/usr/share/fontconfig/conf.avail/67-"${pkgname//ttf-/}".fonts.conf

    local family=$2
    read -ra aliases <<<"$3"

    cat <<EOF >"${config_file}"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <description>Replace Windows built-in "${aliases[0]}" with font "${family}"</description>
EOF

    for alias in "${aliases[@]}"; do
        cat <<EOF >>"${config_file}"
    <match target="pattern">
        <test qual="any" name="family"><string>${alias}</string></test>
        <edit name="family" mode="assign" binding="same"><string>${family}</string></edit>
    </match>
EOF
    done

    echo "</fontconfig>" >>"${config_file}"
}
