# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit git-r3

DESCRIPTION="Chinese-specific configuration to improve your favorite DNS server."
HOMEPAGE="https://github.com/felixonmars/dnsmasq-china-list"

EGIT_REPO_URI="https://github.com/felixonmars/dnsmasq-china-list.git"
EGIT_MIN_CLONE_TYPE=shallow

LICENSE="WTFPL-2"
SLOT="0"
IUSE="+dnsmasq smartdns dnscrypt-proxy"

RDEPEND="
	${DEPEND}
	dnsmasq? ( net-dns/dnsmasq )
	smartdns? ( net-dns/smartdns )
	dnscrypt-proxy? ( net-dns/dnscrypt-proxy )
"

src_compile() {
	if use smartdns; then
		make smartdns SERVER=china
		rm bogus-nxdomain.china.smartdns.conf
	fi
	if use dnscrypt-proxy; then
		# dnscrypt-proxy won't cache the forwarded domain
		# recommend to use systemd-resolved extra stub listener
		# for caching china domains
		make SERVER="127.0.0.1:5335" dnscrypt-proxy
	fi
}

src_install() {
	if use dnsmasq; then
		insinto /etc/dnsmasq.d/
		dobin dnsmasq-update-china-list
		doins *.china.conf
	fi
	if use smartdns; then
		insinto /etc/smartdns/
		doins *.china.smartdns.conf
	fi
	if use dnscrypt-proxy; then
		insinto /etc/dnscrypt-proxy/
		newins dnscrypt-proxy-forwarding-rules.txt forwarding-rules.txt
	fi
}

pkg_postinst() {
	ewarn "If you want systemd-resolved to act as a cache for dnscrypt-proxy domestic domains"
	ewarn "edit /etc/systemd/resolved.conf.d/dnscrypt-proxy.conf:"
	ewarn "[Resolve]"
	ewarn "DNS="
	ewarn "DNSStubListener=no"
	ewarn "DNSStubListenerExtra=udp:127.0.0.1:5335"
}