# Contributor: Galen Abell <galen@galenabell.com>
# Contributor: Maxim Karasev <begs@disroot.org>
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=i3status-rust
pkgver=0.33.2
pkgrel=0
pkgdesc="i3status replacement in Rust"
url="https://github.com/greshake/i3status-rust"
arch="all"
license="GPL-3.0-only"
makedepends="
	cargo
	cargo-auditable
	curl-dev
	dbus-dev
	lm-sensors-dev
	notmuch-dev
	openssl-dev>3
	pulseaudio-dev
	"
options="net"
provides="i3status-rs=$pkgver-r$pkgrel"
subpackages="$pkgname-doc"
source="
	https://github.com/greshake/i3status-rust/archive/refs/tags/v$pkgver/i3status-rust-v$pkgver.tar.gz
	https://dev.alpinelinux.org/archive/i3status-rs/i3status-rs-$pkgver.1
	"

_common_features="pulseaudio,notmuch,maildir,icu_calendar"

case "$CARCH" in
armhf | armv7 | x86 | s390x)
	# pipewire crate does not build on 32-bit arches: https://gitlab.freedesktop.org/pipewire/pipewire-rs/-/issues/43
	# pipewire still depends on nix 0.27 which fails to build on s390x; try removing s390x from this block once updated
	_cargo_opts="--no-default-features --features $_common_features"
	;;
*)
	makedepends="$makedepends clang-dev pipewire-dev"
	_cargo_opts="--features $_common_features,pipewire"
	;;
esac

prepare() {
	default_prepare
	cargo fetch --target="$CTARGET" --locked
}

build() {
	cargo auditable build --release --frozen $_cargo_opts
}

check() {
	cargo test $_cargo_opts
}

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

	install -Dm644 "$srcdir"/i3status-rs-$pkgver.1 \
		"$pkgdir"/usr/share/man/man1/i3status-rs.1

	install -Dm644 files/themes/* -t "$pkgdir"/usr/share/i3status-rust/themes/
	install -Dm644 files/icons/* -t "$pkgdir"/usr/share/i3status-rust/icons/
}

sha512sums="
6df28c267f91e0654a2c0f8bcee6f0c131c7f6e8e9e3726e9f44dc80e3e1ce574bdeb957b62888f3c7f1be8027462a5b5b462ec3180326bf886d85a379d9900b  i3status-rust-v0.33.2.tar.gz
64eaae1dff4deda4d8011603dcfacf037369eeec374e02d3b96843434f2b02e5ed6e3fc0358eff846c58e8b819fe280d1f37b69e1a6f7046c6d1987f9ad24f54  i3status-rs-0.33.2.1
"
