# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit go-module systemd tmpfiles

COMMIT="4454fb1af28b47947f59e522d5ed874d27dcc621"

DESCRIPTION="Amazon AWS Opentelemetry Collector"
HOMEPAGE="https://github.com/aws-observability/aws-otel-collector"
SRC_URI="https://github.com/aws-observability/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64"

RDEPEND="acct-group/amazon
	acct-group/aoc
	acct-user/amazon
	acct-user/aoc"
BDEPEND=">=dev-lang/go-1.26.2"

src_compile() {
	DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
	LDFLAGS="-w -X \"github.com/aws-observability/aws-otel-collector/tools/version.Date=${DATE}\" \
		-X github.com/aws-observability/aws-otel-collector/tools/version.GitHash=${COMMIT} \
		-X github.com/aws-observability/aws-otel-collector/tools/version.Version=${PV}"
	GOFLAGS="-v -x -mod=vendor" ego build -ldflags="${LDFLAGS}" \
		-o aws-otel-collector ./cmd/awscollector
}

src_test() {
	GOFLAGS="-v -x -mod=vendor" ego test -work ./...
}

src_install() {
	einstalldocs

	diropts -o aoc -g aoc -m 0755
	keepdir /opt/aws/aws-otel-collector/{doc,etc,logs,var}

	insopts -o aoc -g aoc -m 0644
	insinto /opt/aws/aws-otel-collector/etc
	doins config.yaml extracfg.txt
	newins - .env <<-EOF
		config=--config /opt/aws/aws-otel-collector/etc/config.yaml
	EOF
	exeinto /opt/aws/aws-otel-collector/bin
	newexe tools/ctl/linux/aws-otel-collector-ctl.sh aws-otel-collector-ctl
	doexe aws-otel-collector
	# This is needed for aws-otel-collector-ctl
	insinto /opt/aws/aws-otel-collector/bin
	doins VERSION

	dosym ../../opt/aws/aws-otel-collector/bin/aws-otel-collector-ctl \
		usr/bin/aws-otel-collector-ctl
	dosym ../../opt/aws/aws-otel-collector/etc etc/amazon/aws-otel-collector
	dosym ../../../opt/aws/aws-otel-collector/logs \
		var/log/amazon/aws-otel-collector

	newinitd "${FILESDIR}"/aws-otel-collector.initd aws-otel-collector
	newconfd "${FILESDIR}"/aws-otel-collector.confd aws-otel-collector
	systemd_dounit tools/packaging/linux/aws-otel-collector.service
	newtmpfiles "${FILESDIR}"/aws-otel-collector.tmpfile aws-otel-collector.conf
}

pkg_postinst() {
	go-module_pkg_postinst
	tmpfiles_process aws-otel-collector.conf
}