summaryrefslogtreecommitdiff
blob: a538f9f1c89bd1027f9d7f5b4c02145b95f50131 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8
inherit go-module systemd

DESCRIPTION="Export smartctl statistics to prometheus"
HOMEPAGE="https://github.com/prometheus-community/smartctl_exporter"

# uncomment the first setting of MY_PV for a normal release
# MY_PV="v${PV/_rc/-rc.}"
# set MY_PV to the full commit hash for a snapshot release
MY_PV_HASH=
: ${MY_PV_HASH_FOR_VENDOR:=${MY_PV_HASH}}
if [[ -n "${MY_PV_HASH}" ]]; then
	MY_PV=${MY_PV_HASH}
	SMARTCTL_EXPORTER_COMMIT=${MY_PV_HASH:0:8}
	SRC_URI_UPSTREAM="${HOMEPAGE}/archive/${MY_PV}.tar.gz"
else
	MY_PV=$PV
	SMARTCTL_EXPORTER_COMMIT=
	SRC_URI_UPSTREAM="${HOMEPAGE}/archive/refs/tags/v${PV}.tar.gz"
fi
MY_P=${PN}-${MY_PV}
SRC_URI_VENDOR="https://dev.gentoo.org/~robbat2/distfiles/${MY_P}-vendor.tar.xz"
UPSTREAM_PATCHES=(
	0.12.0:d33b5a391f4a18b3d9c0a194e57cdd3491130099
)
SRC_URI="
	${SRC_URI_UPSTREAM} -> ${P}.tar.gz
	${SRC_URI_VENDOR}
	"
PATCHES=()
for p in $UPSTREAM_PATCHES; do
	SRC_URI+=" https://github.com/prometheus-community/smartctl_exporter/commit/${p/*:}.patch -> ${PN}-${p/:/-}.patch"
	PATCHES+=( "${DISTDIR}/${PN}-${p/:/-}.patch" )
done

# Upstream LICENSE file is wrong see https://github.com/prometheus-community/smartctl_exporter/pull/113
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
BDEPEND="dev-util/promu"
DEPEND="dev-lang/go"
RDEPEND="sys-apps/smartmontools"

src_prepare() {
	default
	if [[ -n $SMARTCTL_EXPORTER_COMMIT ]]; then
		sed -i -e "s/{{.Revision}}/${SMARTCTL_EXPORTER_COMMIT}/" .promu.yml || die
	fi
}

src_compile() {
	emake build PROMU='/usr/bin/promu'
}

src_install() {
	dodoc *.md
	dobin ${PN}
	newinitd "${FILESDIR}"/${PN}.initd ${PN}
	newconfd "${FILESDIR}"/${PN}.confd ${PN}
	systemd_dounit "${FILESDIR}/${PN}.service"

}