# Maintainer: omni <omni+alpine@hack.org>
maintainer="omni <omni+alpine@hack.org>"
pkgname=minijinja-cli
pkgver=2.10.2
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-pyc
	py3-$_pkgname:py3
	"
source="$_pkgname-$pkgver.tar.gz::https://github.com/mitsuhiko/minijinja/archive/refs/tags/$pkgver.tar.gz
	minimal-workspace.patch
	"
builddir="$srcdir"/"$_pkgname-$pkgver"

prepare() {
	default_prepare

	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": "--target=$CTARGET --release --all-features --package minijinja-py"}' \
		--output-fd 3 3>&1 >&2
	# TODO: build minijinja-py with --frozen, currently failing to download
	# android-tzdata, perhaps additional build-options
	# TODO: cargo auditable build with maturin
	# https://github.com/PyO3/maturin/issues/2495
}

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 \
		-k 'not test_fucked_up_object' # Aborted (core dumped)
}

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="
36da7557e0937b8ffa6222dcecf94e1aa29928d01b59673b29a5a64c9de4b5f8ca088c88d5f281f581267a63fa4b88a2e28e702a953ef096c39b7bb67572e3c5  minijinja-2.10.2.tar.gz
31c68c03b31861fc981fd83a558763f6ffb77d7eb1e1ff5c3e391010c621f5e3412971e154e98f198192f1a1fc313e273c49598263ab9ee9042559f416611a91  minimal-workspace.patch
"
