# Maintainer: @naveen521kk on Github, Naveen M K <naveen@syrusdark.website>

_realname=texlive-lang-english
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2021.20210519
_revnr=${pkgver#2021.}
pkgrel=2
pkgdesc="TeX Live - US and UK English (mingw-w64)"
license=('GPL')
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
depends=(
    "${MINGW_PACKAGE_PREFIX}-texlive-core"
)
groups=(
    "${MINGW_PACKAGE_PREFIX}-texlive-full"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-full"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-medium"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-tetex"
)
url='http://tug.org/texlive/'
source=("${_realname}-${_revnr}.tar.xz::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}-${_revnr}.tar.xz"
    "${_realname}-extra-files.tar.xz::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}-extra-files.tar.xz")
options=('!emptydirs')
sha256sums=(
    "a7df6b40b7393a0842470ed45647737aa3df4f0d6343dc733102172797a8e389"
    "e7652852b5b28577ff36f3d6c6f1b2e9d458d6426b17de49646745c848f4bc08"
)

build() {
    for p in *.tar.xz; do
        bsdtar -xf $p
        echo $p
    done
    rm -rf {tlpkg,doc,source} || true
}

copy_file_message() {
    local from="$1"
    local to="$2"
    msg2 "Copying $from to $to"
    cp $from $to
}

package() {
    msg "Installing Package"

    # Install packages.
    install -m755 -d "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs"
    sed -i '/^#/d' CONTENTS
    install -m644 CONTENTS "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/${pkgname}_${_revnr}.pkgs"
    install -m644 ${_realname}.maps "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/"
    install -m644 ${_realname}.fmts "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/"

    # language files for hooks
    sed -i 's/\% test//' ${_realname}.dat
    install -m644 ${_realname}.dat "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/"

    sed -i 's/-- test//' ${_realname}.dat.lua
    install -m644 ${_realname}.dat.lua "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/"

    sed -i 's/\% test//' ${_realname}.def
    install -m644 ${_realname}.def "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/"

    install -m755 -d "${pkgdir}${MINGW_PREFIX}/share"
    wanteddirs=$(for d in *; do test -d $d && [[ $d != texmf* ]] && echo $d; done) || true
    for dir in $wanteddirs; do
        find $dir -type d -exec install -d -m755 "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/'{}' \;
        find $dir -type f -exec install -m644 '{}' "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/'{}' \;
    done

    if [[ -d texmf-dist ]]; then
        find texmf-dist -type d -exec install -d -m755 "${pkgdir}${MINGW_PREFIX}"/share/'{}' \;
        find texmf-dist -type f -exec install -m644 '{}' "${pkgdir}${MINGW_PREFIX}"/share/'{}' \;
    fi
    if [[ -d "$pkgdir"/share/texmf-dist/scripts ]]; then
        find "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/scripts -type f -exec chmod a+x '{}' \;
    fi
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/chktex/"
    

    msg "Creating Launchers."
    # get the list from
    # this should be in source.
    # remove comment
    sed -i 's/# This file contains linked scripts list for the package.//' "${srcdir}/${_realname}.scripts"
    # remove useless files
    sed -i /.*readme.*/d "${srcdir}/${_realname}.scripts"

    . "${srcdir}/${_realname}.scripts"
    install -m755 -d "${pkgdir}${MINGW_PREFIX}"/bin
    for _script in ${linked_scripts}; do
        _scriptbase=$(basename $_script)
        _scriptbase=${_scriptbase%.*}
        install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/${_scriptbase}.exe"
    done

}
