# Maintainer: Green0Photon <green0photon AT gmail DOT com>

pkgname=task
pkgver=3.5.0
pkgrel=1
pkgdesc="A command-line todo list manager"
arch=('i686' 'x86_64')
url="https://taskwarrior.org/"
msys2_repository_url="https://github.com/GothenburgBitFactory/taskwarrior"
msys2_references=(
  "anitya: 5841"
)
license=('spdx:MIT')
depends=("gcc-libs"
         "libgnutls"
         "libutil-linux"
         "libhogweed" # for some reason, didn't install with libgnutls
)
makedepends=("cmake"
             "libgnutls-devel"
             "libutil-linux-devel"
             'gcc'
             'rust'
             'git'
)
# AUR packages had an odd colon notation
# The comments were within the quotes so pacman knew about it
optdepends=("bash-completion" # for bash completion
            "python" # for python export addon
            "ruby" # for ruby export addon
            "perl" # for perl export addon
            "perl-JSON" # for perl export addon
            "rsync" # synchronisation via rsync
            "curl" # synchronisation via http(s)/ftp
            "openssh" # synchronisation via ssh
)
checkdepends=("python" # for tests
              "bash" # for tests
)
source=("https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz"
        "ring-0.17.14.tar.gz::https://static.crates.io/crates/ring/ring-0.17.14.crate"
        "ring-support-cygwin.patch")
sha256sums=('9ea64b411f8314414f440ec765dfdf5a86c9f6159df47e2f60cff3db6b31157a'
            'a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7'
            '8595d93ebdcc37b023113b60196ba0d4bec2d9623e4092b19a699ed1458f33fa')
noextract=(${pkgname}-${pkgver}.tar.gz)

prepare() {
  [[ -d ${srcdir}/${pkgname}-${pkgver} ]] && rm -rf ${srcdir}/${pkgname}-${pkgver}
  tar -xzf ${srcdir}/${pkgname}-${pkgver}.tar.gz -C $srcdir || true
  cd "${pkgname}-${pkgver}"

  patch -p1 -d ../ring-0.17.14 -i ../ring-support-cygwin.patch
  cat >> Cargo.toml <<END

[patch.crates-io]
ring.path = "../ring-0.17.14"
END

  cargo update -p ring
  cargo fetch --locked --target "${RUST_CHOST}"
}

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"

  CXXFLAGS+=" -D_GNU_SOURCE" \
  cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr .
  make
}

package() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  make DESTDIR="${pkgdir}" install

  # Note that we rename the bash completion script for bash-completion > 1.99, until upstream does so.
  install -Dm644 "$pkgdir/usr/share/doc/task/scripts/bash/task.sh" "$pkgdir/usr/share/bash-completion/completions/task"

  install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/ftdetect/task.vim" "$pkgdir/usr/share/vim/vimfiles/ftdetect/task.vim"
  install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/syntax/taskdata.vim" "$pkgdir/usr/share/vim/vimfiles/syntax/taskdata.vim"
  install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/syntax/taskedit.vim" "$pkgdir/usr/share/vim/vimfiles/syntax/taskedit.vim"
  install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/syntax/taskrc.vim" "$pkgdir/usr/share/vim/vimfiles/syntax/taskrc.vim"

  install -Dm644 "$srcdir/$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/task/LICENSE"
}
