# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit fcaps systemd

MY_PN="${PN/-bin/}"

DESCRIPTION="Network-wide ads & trackers blocking DNS server"
HOMEPAGE="https://github.com/AdguardTeam/AdGuardHome"

SRC_URI_BASE="https://github.com/AdguardTeam/${MY_PN}/releases/download/v${PV}/"
SRC_URI="
	amd64? ( ${SRC_URI_BASE}/${MY_PN}_linux_amd64.tar.gz -> ${P}-amd64.tar.gz )
	arm? ( ${SRC_URI_BASE}/${MY_PN}_linux_armv7.tar.gz -> ${P}-arm.tar.gz )
	arm64? ( ${SRC_URI_BASE}/${MY_PN}_linux_arm64.tar.gz -> ${P}-arm64.tar.gz )
	ppc64? ( ${SRC_URI_BASE}/${MY_PN}_linux_ppc64le.tar.gz -> ${P}-ppc64.tar.gz )
	x86? ( ${SRC_URI_BASE}/${MY_PN}_linux_386.tar.gz -> ${P}-x86.tar.gz )
"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~x86"

RDEPEND="
	acct-user/adguardhome
	acct-group/adguardhome
"

S="${WORKDIR}/${MY_PN}"

DOCS=( {CHANGELOG,README}.md )
QA_PREBUILT="opt/adguardhome/AdGuardHome"
FILECAPS=( 'cap_net_bind_service=+eip cap_net_raw=+eip' opt/adguardhome/AdGuardHome )

src_install() {
	# install binary and wrapper
	exeinto /opt/adguardhome
	doexe AdGuardHome
	exeinto /usr/bin
	newexe "${FILESDIR}/wrapper.sh" AdGuardHome

	# install dirs
	diropts -o adguardhome -g adguardhome
	# /var/lib/adguardhome handled by acct-user/adguardhome
	keepdir /var/log/adguardhome /etc/adguardhome

	# install services
	newinitd "${FILESDIR}"/adguardhome.initd adguardhome
	newconfd "${FILESDIR}"/adguardhome.confd adguardhome
	systemd_dounit "${FILESDIR}"/adguardhome.service
	einstalldocs
}

pkg_postinst() {
	fcaps_pkg_postinst

	einfo "/usr/bin/AdGuardHome is a wrapper to ensure that certain flags are passed."
	einfo "Should you need the 'real' binary it's located at /opt/adguardhome/AdGuardHome."

	ewarn "The AdGuard Home service is set up to run as unprivileged user adguardhome."
	ewarn "Initial setup requires admin privileges."
	ewarn "Run AdGuardHome manually as root and follow the instructions to setup."
}