# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
pkgname=tempo
pkgver=2.7.2
pkgrel=0
pkgdesc="High volume distributed tracing backend"
options="net"
url="https://github.com/grafana/tempo"
license="AGPL-3.0-or-later"
# needs 64 bits
arch="all !armhf !armv7 !x86"
makedepends="go"
subpackages="$pkgname-cli $pkgname-query $pkgname-vulture-openrc:vulture_openrc $pkgname-vulture $pkgname-openrc"
install="$pkgname.pre-install"
pkgusers="tempo"
pkggroups="grafana"
source="$pkgname-$pkgver.tar.gz::https://github.com/grafana/tempo/archive/refs/tags/v$pkgver.tar.gz
	$pkgname.initd
	$pkgname.confd
	$pkgname-vulture.confd
	$pkgname-vulture.initd
	"

prepare() {
	default_prepare
	mkdir -p build
	sed -i 's+/var/tempo+/var/lib/tempo+g' tools/packaging/tempo.yaml
}

build() {
	ldflags="-X main.Version=$pkgver"

	go build -v -mod vendor \
		-ldflags "$ldflags" \
		-o build/tempo \
		./cmd/tempo
	go build -v -mod vendor \
		-ldflags "$ldflags" \
		-o build/tempo-query \
		./cmd/tempo-query
	go build -v -mod vendor \
		-ldflags "$ldflags" \
		-o build/tempo-cli \
		./cmd/tempo-cli
	go build -v -mod vendor \
		-ldflags "$ldflags" \
		-o build/tempo-vulture \
		./cmd/tempo-vulture
}


check() {
	go test $(go list $(find . -type f -name '*.go' ! -path './tools*/*' ! -path './vendor*/*' ! -path './integration/*' ! -path './cmd/tempo-serverless/*' ! -path './pkg*/*' ! -path './tempodb*/*' -exec dirname {} \; | sort | uniq))
}

package() {
	install -Dm644 example/docker-compose/local/tempo.yaml "$pkgdir"/etc/tempo/tempo.yaml
	install -Dm0755 build/tempo -t "$pkgdir"/usr/bin
	install -Dm0755 build/tempo-query -t "$pkgdir"/usr/bin
	install -Dm0755 build/tempo-cli -t "$pkgdir"/usr/bin
	install -Dm0755 build/tempo-vulture -t "$pkgdir"/usr/bin

	install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
	install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname

	install -Dm755 "$srcdir"/$pkgname-vulture.initd "$pkgdir"/etc/init.d/$pkgname-vulture
	install -Dm644 "$srcdir"/$pkgname-vulture.confd "$pkgdir"/etc/conf.d/$pkgname-vulture

	install -m755 -d -o tempo -g grafana "$pkgdir"/var/lib/tempo
}

query() {
	pkgdesc="Tempo query tool"

	amove usr/bin/tempo-query
}

cli() {
	pkgdesc="Tempo command line tool"

	amove usr/bin/tempo-cli
}

vulture() {
	pkgdesc="Tempo performance monitor"

	amove usr/bin/tempo-vulture
}

vulture_openrc() {
	pkgdesc="Tempo performance monitor (Open RC init scripts)"
	install_if="openrc tempo-vulture=$pkgver-r$pkgrel"

	amove etc/init.d/$pkgname-vulture
	amove etc/conf.d/$pkgname-vulture
}

sha512sums="
29db2151d6d0b254522b20f77e438775494d77c3ea568d8a91e278f8cad5f33288f290da758d2cbff990319cf4fd5a9ddf0418f67e628a53d0e8799ac61ec7ae  tempo-2.7.2.tar.gz
abdfc70475c42ab8ff1713db54664a975744db9b48e5770bf1109530b2ea900742c7a9b5a8c845274923cd43d82d719a972bb8a6dc87854815e187264791048b  tempo.initd
ec4984141e480e26cebce7a650bd75910b0ef71ed05f3902725a24f6235c4823855ebf73b457bbb1e976fb9ed7e338f10a662f0c2c36c52ca6694f16e7ab2065  tempo.confd
45b49e4131770f9deaaafc8b42ec4f86fb906ae39ec12f52c0a959d3bd3df707ef5b6a6dec3872c54c16bb5ab163968197223c8d9a58761814dd2722eb15d4fa  tempo-vulture.confd
84626aa2ae5b1d140ae939e4b04f8da988002f37ee1df38cad1025bd5ed135c3db434028a1adba7430a78283f1c04885b1444cc303f56ba5fe7be94a1057ed99  tempo-vulture.initd
"
