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

EAPI=8

inherit eapi9-ver go-module systemd

GIT_COMMIT=11da31c961d37eab296c48ab50c38c3bdff8e2e3

DESCRIPTION="Prometheus exporter for MySQL server metrics"
HOMEPAGE="https://github.com/prometheus/mysqld_exporter"
SRC_URI="https://github.com/prometheus/mysqld_exporter/archive/v${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"

DEPEND="
	acct-group/mysqld_exporter
	acct-user/mysqld_exporter
"
RDEPEND="${DEPEND}"
BDEPEND=">=dev-lang/go-1.25.0"

src_compile() {
	local go_ldflags=(
		-X github.com/prometheus/common/version.Version=${PV}
		-X github.com/prometheus/common/version.Revision=${GIT_COMMIT}
		-X github.com/prometheus/common/version.Branch=HEAD
		-X github.com/prometheus/common/version.BuildUser=gentoo
		-X github.com/prometheus/common/version.BuildDate="$(date +%Y%m%d-%T)"
	)
	ego build -ldflags "${go_ldflags[*]}" -o bin/${PN} .
	./bin/${PN} --help-man > ${PN}.1 || die
}

src_test() {
	ego test ./...
}

src_install() {
	dobin bin/${PN}
	dodoc {README,CHANGELOG,CONTRIBUTING}.md
	doman ${PN}.1

	keepdir /var/lib/mysqld_exporter /var/log/mysqld_exporter
	fowners ${PN}:${PN} /var/lib/mysqld_exporter /var/log/mysqld_exporter
	fperms 0770 /var/lib/mysqld_exporter

	systemd_dounit "${FILESDIR}"/${PN}.service
	newinitd "${FILESDIR}"/${PN}-r1.initd ${PN}
	newconfd "${FILESDIR}"/${PN}-r1.confd ${PN}

	insinto /etc/logrotate.d/
	newins "${FILESDIR}"/${PN}.logrotate ${PN}
}

pkg_postinst() {
	if [[ -z "${REPLACING_VERSIONS}" ]]; then
		# This is a new installation
		elog "Create \"${EROOT}/var/lib/mysqld_exporter/.my.cnf\" to read MySQL credentials from file."
	elif ver_replacing -lt "0.11.0"; then
		elog "Starting with ${PN}-0.11.0, command-line flags will require double dashes (--)."
		elog "You must update your configuration or ${PN} won't start."
	fi
}
