# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>

pkgname=hledger
pkgver=1.15.2
pkgrel=1
pkgdesc="Command-line interface for the hledger accounting tool"
url="http://hledger.org"
license=("GPL")
arch=('x86_64')
depends=('ghc-libs' 'haskell-ansi-terminal' 'haskell-base-compat-batteries' 'haskell-cmdargs'
         'haskell-data-default' 'haskell-decimal' 'haskell-diff' 'haskell-easytest'
         'haskell-hashable' 'haskell-hledger-lib' 'haskell-lucid' 'haskell-math-functions'
         'haskell-megaparsec' 'haskell-old-time' 'haskell-pretty-show' 'haskell-regex-tdfa'
         'haskell-safe' 'haskell-shakespeare' 'haskell-split' 'haskell-tabular' 'haskell-temporary'
         'haskell-unordered-containers' 'haskell-utf8-string' 'haskell-utility-ht'
         'haskell-wizards')
makedepends=('ghc' 'haskell-extra' 'haskell-test-framework' 'haskell-test-framework-hunit'
             'haskell-timeit')
source=("https://hackage.haskell.org/packages/archive/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
sha512sums=('77362ab356f16abe6742a1c59985b4e31a8901fb236083eb8fb77689e9ccf99e76f8bde722a4e05daebf0c23654b5bf2d1ecd2e7613b5a8ab85efd99d3282fc3')

prepare() {
    # It does nothing
    sed -e '/mtl-compat/d' \
        -i ${pkgname}-${pkgver}/${pkgname}.cabal
}

build() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
        --prefix=/usr --docdir="/usr/share/doc/${pkgname}" --datasubdir="$pkgname" --enable-tests \
        --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid \
            -fterminfo -fthreaded
    LC_CTYPE=en_US.UTF-8 runhaskell Setup build
    runhaskell Setup register --gen-script
    runhaskell Setup unregister --gen-script
    sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
    sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
}

check() {
    cd $pkgname-$pkgver
    runhaskell Setup test
}

package() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    install -D -m744 register.sh   "${pkgdir}/usr/share/haskell/register/${pkgname}.sh"
    install -D -m744 unregister.sh "${pkgdir}/usr/share/haskell/unregister/${pkgname}.sh"
    runhaskell Setup copy --destdir="${pkgdir}"
    rm -f "${pkgdir}/usr/share/doc/${pkgname}/LICENSE"
}
