# Contributor: Dhruvin Gandhi <contact@dhru.vin>
# Maintainer: Dhruvin Gandhi <contact@dhru.vin>
pkgname=hledger-stockquotes
pkgver=0.1.3.2
pkgrel=0
pkgdesc="hledger addon that pulls historical stock prices for commodities"
url="https://github.com/prikhi/hledger-stockquotes"
# temp disable due to it fails to build from source
arch="x86_64" # limited by GHC
license="BSD-3-Clause"
makedepends="ghc cabal libffi-dev ncurses-dev zlib-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/prikhi/hledger-stockquotes/archive/refs/tags/$pkgver.tar.gz
	cabal.project.freeze
	"
options="!check" # fail to build for some reason

export CABAL_DIR="$srcdir"/cabal

cabal_update() {
	msg "Freezing $pkgname dependencies"

	# Resolve deps and generate fresh cabal.project.freeze with version constraints.
	(
		cd "$builddir"
		cabal v2-update
		cabal v2-freeze --strong-flags --shadow-installed-packages

		# Add version tag at the first line.
		sed -i "1i--$pkgver" "cabal.project.freeze"

		mv "cabal.project.freeze" "$startdir/"
	)

	if ! abuild checksum; then
		die "Failed to update checksum, run 'abuild checksum' manually"
	fi
}

prepare() {
	default_prepare

	if [ "$(head -n 1 "$srcdir/cabal.project.freeze")" != "--$pkgver" ]; then
		die "Requirements file is outdated, run 'abuild cabal_update'"
	fi

	ln -sf "$srcdir/cabal.project.freeze" "$builddir/"
}

build() {
	cabal update
	cabal build --prefix=/usr --enable-relocatable
}

check() {
	cabal test
}

package() {
	local ghcver=$(ghc --version | cut -d " " -f 8)
	install -Dm755 \
		"dist-newstyle/build/$arch-linux/ghc-$ghcver/$pkgname-$pkgver/x/$pkgname/build/$pkgname/$pkgname" \
		"$pkgdir"/usr/bin/$pkgname
}

sha512sums="
ea7f6fba26c789a12d8c5c1bddc88243845aba57956ea7feb49f8b9f3991ff196a606d14e2d27fa3a48d75b000229d2c08d5a5dc8998467eb45040f91c808eec  hledger-stockquotes-0.1.3.2.tar.gz
e691cd5e6d21a727ba1c2eb036e7fcd86d8ee4b3db4e73e6ab8214329c74503979b17bd17d706d79f0a4eb3121e1ec1db9b6ebbcf56d03a6ac9f73488fd50490  cabal.project.freeze
"
