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

pkgname=darcs
pkgver=2.14.2
pkgrel=108
pkgdesc="A distributed, interactive, smart revision control system"
url="http://darcs.net"
license=("GPL2")
arch=('x86_64')
depends=('curl' 'ghc-libs' 'haskell-async' 'haskell-attoparsec' 'haskell-base16-bytestring'
         'haskell-cryptohash' 'haskell-data-ordlist' 'haskell-fgl' 'haskell-graphviz'
         'haskell-hashable' 'haskell-html' 'haskell-http' 'haskell-knob' 'haskell-mmap'
         'haskell-network' 'haskell-network-uri' 'haskell-old-time'
         'haskell-sandi' 'haskell-random' 'haskell-regex-applicative' 'haskell-regex-compat-tdfa'
         'haskell-tar' 'haskell-unix-compat' 'haskell-utf8-string'
         'haskell-vector' 'haskell-zip-archive' 'haskell-zlib')
makedepends=('ghc' 'haskell-cmdargs' 'haskell-findbin' 'haskell-hunit' 'haskell-quickcheck'
             'haskell-shelly' 'haskell-split' 'haskell-test-framework'
             'haskell-test-framework-hunit' 'haskell-test-framework-quickcheck2')
source=("https://hackage.haskell.org/packages/archive/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
sha512sums=('0fd3aa052da9d74f31835a12e7bb50beeff7beec8b10c72cafef7e97fbac02ae178a8f52bf55f1d79887e19164633c8a19ddda01ff2ba4aa8795ac071903552b')

prepare() {
    cd $pkgname-$pkgver
    sed -e 's/^ghc /ghc -dynamic /' \
        -e 's/ ghc / ghc -dynamic /' \
        -i tests/*.sh tests/lib
    sed -i -e 's/< *0.5/<1/' -e 's/< *2.13/<3/' $pkgname.cabal
}

build() {
    cd $pkgname-$pkgver

    runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
        --prefix=/usr --docdir="/usr/share/doc/${pkgname}" --enable-tests \
        --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid \
        -fcurl -fpkgconfig -f-static -fterminfo -fthreaded -fexecutable \
        -f-rts -foptimize -f-warn-as-error -f-libiconv
    LD_LIBRARY_PATH="$srcdir"/$pkgname-$pkgver/dist/build 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 $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"
    chmod 644 "${pkgdir}/usr/share/man/man1/darcs.1"

    install -Dm644 contrib/darcs_completion "${pkgdir}/usr/share/bash-completion/completions/darcs"
    install -Dm644 contrib/_darcs.zsh "${pkgdir}/usr/share/zsh/site-functions/_darcs"
}
