redis_exporter-1.83.0gentoo
download
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd
EGIT_COMMIT=1c261b87e1431be106c241181038274b406c9592
DESCRIPTION="Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x and 4.x"
HOMEPAGE="https://github.com/oliver006/redis_exporter"
SRC_URI="https://github.com/oliver006/redis_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="MIT Apache-2.0 BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
DEPEND="
acct-user/redis_exporter
acct-group/redis_exporter"
RDEPEND="${DEPEND}"
BDEPEND="
>=dev-lang/go-1.25.0
test? ( dev-db/redis )
"
src_compile() {
local egoldflags=(
-X main.BuildVersion=${PV}
-X main.BuildCommitSha=${EGIT_COMMIT}
-X main.BuildDate=$(date +%F-%T)
)
ego build -o bin/ -ldflags="${egoldflags[*]}" ./...
}
src_test() {
local redis_pid="${T}"/redis.pid
local redis_port=6379
if has_version ">=dev-db/redis-7"; then
local extra_conf="
enable-debug-command yes
enable-module-command yes
"
fi
# Spawn Redis itself for testing purposes
einfo "Spawning Redis"
einfo "NOTE: Port ${redis_port} must be free"
"${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
daemonize yes
pidfile ${redis_pid}
port ${redis_port}
bind 127.0.0.1 ::1
${extra_conf}
EOF
contrib/tls/gen-test-certs.sh || die "Unable to generate TLS certs"
local -x TEST_REDIS_URI="redis://localhost:${redis_port}"
ego test -work ./...
# Clean up afterwards
kill "$(<"${redis_pid}")" || die
}
src_install() {
dobin bin/redis_exporter
dodoc README.md
local dir
for dir in /var/{lib,log}/${PN}; do
keepdir "${dir}"
fowners ${PN}:${PN} "${dir}"
done
systemd_dounit "${FILESDIR}/${PN}.service"
newinitd "${FILESDIR}"/${PN}.initd ${PN}
newconfd "${FILESDIR}"/${PN}.confd ${PN}
insinto /etc/logrotate.d
newins "${FILESDIR}/${PN}.logrotated" "${PN}"
}