# Copyright 2026 Nadeŭka <me+oss@nadevko.cc>
# Distributed under the terms of the GNU General Public License v2
EAPI=8

inherit udev

: ${BRIGHTNESSCTL_MODE:='auto'}

DESCRIPTION='A program to read and control device brightness'
HOMEPAGE=https://github.com/Hummer12007/brightnessctl

inherit git-r3
EGIT_REPO_URI="$HOMEPAGE.git"

LICENSE=MIT
SLOT=0

IUSE='basu dbus elogind systemd +udev'
REQUIRED_USE='
	dbus? ( ^^ ( basu elogind systemd ) )
	basu? ( dbus )
	elogind? ( dbus )
	systemd? ( dbus )
'

BDEPEND=virtual/pkgconfig
DEPEND='
	basu? ( sys-libs/basu )
	elogind? ( sys-auth/elogind )
	systemd? ( >=sys-apps/systemd-243 )
'
RDEPEND="
	$DEPEND
	udev? ( virtual/udev acct-group/video acct-group/input )
"

src_prepare() {
	default
	sed -i \
		's|install: all \${INSTALL_UDEV_\${INSTALL_UDEV_RULES}}|install:|' \
		Makefile || die 'failed to patch Makefile'
}

src_configure() {
	./configure \
		--prefix="$EPREFIX/usr" \
		--install-mode="$BRIGHTNESSCTL_MODE" \
		--udev-dir="$(get_udevdir)" \
		--dbus-provider="$(usev basu)$(usev elogind)$(usev systemd)" \
		$(use_enable dbus logind) \
		$(use_enable udev) ||
		die "Failed to configure '$PN'"
}

src_install() {
	emake DESTDIR="$D" install $(usev udev install_udev_rules)
	newinitd "$FILESDIR/brightnessctl.initd" brightnessctl
	newconfd "$FILESDIR/brightnessctl.confd" brightnessctl
}

pkg_postinst() {
	use udev && udev_reload

	elog 'To make brightness persistent across reboots on OpenRC,'
	elog 'enable the service:'
	elog '  rc-update add brightnessctl boot'
	elog '  rc-service brightnessctl start'
}

pkg_postrm() {
	use udev && udev_reload
}