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

_realname=texlive-core
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2021.20210519
_revnr=${pkgver#2021.}
pkgrel=2
pkgdesc="TeX Live core distribution (mingw-w64)"
license=('GPL')
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
depends=(
    "${MINGW_PACKAGE_PREFIX}-texlive-bin"
    "${MINGW_PACKAGE_PREFIX}-perl"
)
optdepends=(
    #'dialog:      for texconfig'
    "${MINGW_PACKAGE_PREFIX}-ghostscript: for epstopdf, epspdf and other ConTeXt tools"
    #'java-runtime: for utilities like arara, texplate'
    #'perl-tk:     for texdoctk'
    #'psutils:     to manipulate the output of dvips'
    "${MINGW_PACKAGE_PREFIX}-python:      for de-macro, dviasm, pythontex"
    "${MINGW_PACKAGE_PREFIX}-ruby:        for old ConTeXT MkII and epspdf"
    #"t1utils:     can be useful when installing Type1 fonts"
)
groups=(
    "${MINGW_PACKAGE_PREFIX}-texlive-full"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-basic"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-full"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-gust"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-medium"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-small"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-tetex"
    "${MINGW_PACKAGE_PREFIX}-texlive-scheme-context"
)
conflicts=(
    "${MINGW_PACKAGE_PREFIX}-texlive-xetex"
    "${MINGW_PACKAGE_PREFIX}-texlive-context"
    "${MINGW_PACKAGE_PREFIX}-texlive-base"
    "${MINGW_PACKAGE_PREFIX}-texlive-latex-base"
)
provides=(
    "${MINGW_PACKAGE_PREFIX}-texlive-xetex"
    "${MINGW_PACKAGE_PREFIX}-texlive-context"
    "${MINGW_PACKAGE_PREFIX}-texlive-base"
    "${MINGW_PACKAGE_PREFIX}-texlive-latex-base"
)
replaces=(
    "${MINGW_PACKAGE_PREFIX}-texlive-xetex"
    "${MINGW_PACKAGE_PREFIX}-texlive-context"
    "${MINGW_PACKAGE_PREFIX}-texlive-base"
    "${MINGW_PACKAGE_PREFIX}-texlive-latex-base"
)
url='http://tug.org/texlive/'
source=("${_realname}-${_revnr}.tar.xz::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/texlive-core-${_revnr}.tar.xz"
    "${_realname}-extra-files.tar.xz::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}-extra-files.tar.xz"
    "mktexlsr.hook.in"
    "mktexlsr.script.in"
    "texlive-updmap.hook.in"
    "texlive-updmap.script.in"
    "texlive-fmtutil.hook.in"
    "texlive-fmtutil.script.in"
    "texmf.cnf.in"
    "texmfcnf.lua.in"
    "09-texlive-fonts.conf.in")
install=${_realname}-${MSYSTEM}.install
backup=("${MINGW_PREFIX:1}/etc/texmf/web2c/texmf.cnf"
    "${MINGW_PREFIX:1}/etc/texmf/dvipdfmx/dvipdfmx.cfg"
    "${MINGW_PREFIX:1}/etc/texmf/dvips/config/config.ps"
    "${MINGW_PREFIX:1}/etc/texmf/tex/generic/config/language.dat"
    "${MINGW_PREFIX:1}/etc/texmf/tex/generic/config/language.def"
    "${MINGW_PREFIX:1}/etc/texmf/tex/generic/tex-ini-files/pdftexconfig.tex"
    #"${MINGW_PREFIX:1}/etc/texmf/ttf2pk/ttf2pk.cfg"
    "${MINGW_PREFIX:1}/etc/texmf/web2c/fmtutil.cnf"
    "${MINGW_PREFIX:1}/etc/texmf/web2c/mktex.cnf"
    "${MINGW_PREFIX:1}/etc/texmf/xdvi/XDvi")
sha256sums=(
    "7d30507ba0ebb118289d2ef82ab5b6467b632b192034a555101707c6c043678a"
    "b441751d885ea525d87006e12a4946edddd8520ed0a88c15d6a7b5104847a258"
    '542f68cd8e1a00f1598db8532e70e1bb77adc0516daee84e5aa92707f58fdf04'
    '773e9c8f60c4241a57adafda8abac765c53f7e6e24c86b87366b037ade29077b'
    'bffaa8a7f5d78aed138a760dfa1073ad7c419a61a9739cafbc28dce330aae911'
    'e154d58543dc8d9957f502b3d162023f0be4a650860d3be5289ff2ac880ccca2'
    'd615d040d1943bcdf7b1c7a649644a7bd47703317b79963062a058e1300602f3'
    'dd286733d0b596708ee049aa22d641129d20f61113298c6f11ad37500bf9f1fb'
    '3bc32f119b672015d75d136a3a506efefac6f7b8e01a9a6c95c10c4336931b26'
    '8ededf35132ffbe26434c0c778b3d4a159ce428452abe6ebc8d94161f02bd7e9'
    '87eddde958848d041ded1625e14009e89b3bd5953e7ae39b6aac2f65d3856485'
)

build() {
    cd "$srcdir"
    msg "   --> extracting all packages... "
    for p in *.tar.xz; do
        bsdtar -xf $p
        echo $p
    done
    echo "done"
    rm -rf source doc
}

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

package() {
    cd "$srcdir"

    msg "Installing Pacman hooks"
    # First lets sed all files for prefix changes.
    for hook in 'mktexlsr' 'texlive-fmtutil' 'texlive-updmap'; do
        local hook_path="${srcdir}/${MINGW_PACKAGE_PREFIX}-${hook}.hook"
        cp "${srcdir}/${hook}.hook.in" "${hook_path}"
        sed -s "s|@MINGW_HOOK_TARGET_PREFIX@|${MINGW_PREFIX:1}|g" -i "${hook_path}"
        sed -s "s|@MINGW_PREFIX@|${MINGW_PREFIX}|g" -i "${hook_path}"
        sed -s "s|@MINGW_PACKAGE_PREFIX@|${MINGW_PACKAGE_PREFIX}|g" -i "${hook_path}"
        sed -s "s|@TEMP@|$(cygpath -w $TMP)|g" -i "${hook_path}"
        install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 "${hook_path}"
    done

    for script in 'mktexlsr' 'texlive-fmtutil' 'texlive-updmap'; do
        local script_path="${srcdir}/${MINGW_PACKAGE_PREFIX}-${script}.script"
        cp "${srcdir}/${script}.script.in" "${script_path}"
        sed -s "s|@MINGW_PREFIX@|${MINGW_PREFIX}|g" -i "${script_path}"
        sed -s "s|@MINGW_HOOK_TARGET_PREFIX@|${MINGW_PREFIX:1}|g" -i "${script_path}"
        install -Dt "$pkgdir/usr/share/libalpm/scripts" -m644 "${script_path}"
    done

    for file_conf in '09-texlive-fonts.conf' 'texmfcnf.lua' 'texmf.cnf'; do
        local conf_path="${srcdir}/${file_conf}"
        cp "${srcdir}/${file_conf}.in" "${conf_path}"
        sed -s "s|@MINGW_HOOK_TARGET_PREFIX@|${MINGW_PREFIX:1}|g" -i "${conf_path}"
        sed -s "s|@MINGW_PREFIX@|${MINGW_PREFIX}|g" -i "${conf_path}"
        sed -s "s|@MINGW_PACKAGE_PREFIX@|${MINGW_PACKAGE_PREFIX}|g" -i "${conf_path}"
        sed -s "s|@TEMP@|$(cygpath -u $TMP)|g" -i "${conf_path}"
    done

    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
    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/'{}' \;
    find texmf-dist -type f -executable -exec chmod 755 "${pkgdir}${MINGW_PREFIX}"/share/'{}' \;

    #############################################################
    ### install texmf tree
    msg "Installing the /etc/texmf tree"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/chktex/"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvips/config/"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvipdfmx/"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/tex-ini-files/"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/ttf2pk/"
    install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/xdvi/"

    install -d -m755 "${pkgdir}${MINGW_PREFIX}/share/fontconfig/conf.avail"
    install -m644 "$srcdir"/09-texlive-fonts.conf \
        "${pkgdir}${MINGW_PREFIX}/share/fontconfig/conf.avail/"

    # Remove manpages (already in texlive-bin).
    rm -rf "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/doc/man"

    msg "Copying config files to TEXMFCONFIG tree"
    # copy config files to $TEXMFCONFIG tree
    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/mktex.cnf" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/updmap-hdr.cfg" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/fmtutil-hdr.cnf" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/fmtutil.cnf"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/dvips/config/config.ps" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvips/config/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/dvipdfmx/dvipdfmx.cfg" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvipdfmx/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/tex-ini-files/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/config/language.us" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/config/language.us.def" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/config/language.us.lua" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/"

    # collection fontutils
    # copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/ttf2pk/ttf2pk.cfg" \
    # 	  "${pkgdir}${MINGW_PREFIX}/etc/texmf/ttf2pk/"

    copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/xdvi/XDvi" \
        "${pkgdir}${MINGW_PREFIX}/etc/texmf/xdvi/"

    msg 'remove TL specific warnings in the language.{dat,def} files'
    # remove TL specific warnings in the language.{dat,def} files:
    sed -i -e '/DO NOT EDIT/,+3 d' "${pkgdir}${MINGW_PREFIX}"/etc/texmf/tex/generic/config/language.*

    msg "Replace upstream texmf.cnf with ours"
    # replace upstream texmf.cnf with ours
    rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/web2c/texmf.cnf
    install -m644 "$srcdir"/texmf.cnf "${pkgdir}${MINGW_PREFIX}"/etc/texmf/web2c/texmf.cnf
    install -m644 "${pkgdir}${MINGW_PREFIX}"/etc/texmf/web2c/texmf.cnf "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/web2c/texmf.cnf
    # replace upstream texmfcnf.lua with ours
    install -m644 "$srcdir"/texmfcnf.lua "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/web2c/texmfcnf.lua

    msg "Configure Languages Hypens"
    # remove upstream's language.*
    rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tex/generic/config/language.dat
    rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tex/generic/config/language.def
    rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tex/generic/config/language.dat.lua

    msg "Install Perl libraries"
    # install Perl libraries
    mv "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tlpkg "${pkgdir}${MINGW_PREFIX}"/share
    rm -rf "${pkgdir}${MINGW_PREFIX}"/share/tlpkg/tlpobj

    msg "remove Upstream updmap.cfg and fmtutil.cnf"
    # remove upstream updmap.cfg: it contains too many maps.
    rm "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/updmap.cfg"
    # remove upstream fmtutil.cnf: it will be autogenerated
    rm "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/fmtutil.cnf"

    # Create lauchers for all these Scripts.
    # There is a `runscript.exe` which can be copied
    # with these script names and things should work
    # automatically. It is from texlive-bin
    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 /.*NEWS/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

    # now copy mktexlsr
    install -D -m755 "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/scripts/texlive/mktexlsr.pl" \
        "${pkgdir}${MINGW_PREFIX}/bin/mktexlsr"

    # install context stuff
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/context.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/contextjit.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/luatools.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/mtxrun.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/mtxrunjit.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/texexec.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/texmfstart.exe"

    msg "Creating additional symlinks."

    # additional installs links
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/allec.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/cllualatex.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/clxelatex.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/repstopdf.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/mktexfmt.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/kpsepath.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/kpsexpand.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/mkluatexfontdb.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/texhash.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/rpdfcrop.exe"
    install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/latexdef.exe"
}
