# Maintainer: omni <omni+alpine@hack.org>
maintainer="omni <omni+alpine@hack.org>"
pkgname=minijinja-cli
pkgver=2.5.0
pkgrel=0
pkgdesc="CLI using MiniJinja to render Jinja2 templates from the command line to stdout"
_pkgname=minijinja
url="https://docs.rs/minijinja/latest/minijinja/"
arch="all"
license="Apache-2.0"
makedepends="cargo
	cargo-auditable
	py3-gpep517
	py3-maturin
	py3-setuptools
	sequoia-sq
	"
checkdepends="py3-pytest"
subpackages="
	$pkgname-doc
	$pkgname-bash-completion
	$pkgname-fish-completion
	$pkgname-zsh-completion
	py3-$_pkgname:py3
	"
source="$_pkgname-$pkgver.tar.gz::https://github.com/mitsuhiko/minijinja/archive/refs/tags/$pkgver.tar.gz
	disable-test_randrange-patch
	"
builddir="$srcdir"/"$_pkgname-$pkgver"

prepare() {
	default_prepare

	case "$CARCH" in
	arm*|x86)
		patch -Np1 < "$srcdir"/disable-test_randrange-patch ;;
	esac

	cargo fetch --target="$CTARGET" --locked
}

build() {
	ASSET_OUT_DIR=asset_out_dir cargo auditable build --release --frozen \
		--all-features --package "$pkgname"

	cd minijinja-py
	gpep517 build-wheel \
		--wheel-dir .dist\
		--config-json '{"build-args": "--locked", "build-option": "--release"}' \
		--output-fd 3 3>&1 >&2
}

check() {
	cargo test --all --frozen

	cd minijinja-py
	python3 -m venv --clear --without-pip --system-site-packages .testenv
	.testenv/bin/python3 -m installer .dist/*.whl
	.testenv/bin/python3 -m pytest
}

package() {
	install -Dm755 target/release/"$pkgname" \
		-t "$pkgdir"/usr/bin/

	_asset_out_dir="$pkgname/asset_out_dir"
	install -Dm644 "$_asset_out_dir"/man/* \
		-t "$pkgdir"/usr/share/man/man1/
	install -Dm644 "$_asset_out_dir"/completions/"$pkgname".bash \
		"$pkgdir"/usr/share/bash-completion/completions/"$pkgname"
	install -Dm644 "$_asset_out_dir"/completions/"$pkgname".fish \
		-t "$pkgdir"/usr/share/fish/vendor_completions.d/
	install -Dm644 "$_asset_out_dir"/completions/_"$pkgname" \
		-t "$pkgdir"/usr/share/zsh/site-functions/

	cd minijinja-py
	python3 -m installer -d "$pkgdir" .dist/*.whl
}

py3() {
	pkgdesc="Python bindings for MiniJinja, a template engine compatible with Jinja/Jinja2"

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
}

sha512sums="
4c55bd0bfc9d7dd9bdba89398ce5f3570839f7acea959c8a9ad73c312bddb66039778483cca07d7003131f81e3cd07613bbc9a3dbe46e7d7bdc591479de7ac48  minijinja-2.5.0.tar.gz
48d152bfe460ce08310c68e0b43e3a9acec54e35e79a062851b08bc94251c4918ada2d8e9efafb2f241eda529d83f9d83333ee5677143f482b6b1b060cf30a8a  disable-test_randrange-patch
"
