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

EAPI=8

inherit udev

DESCRIPTION="Linux kernel system configuration"
HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"

KEYWORDS="amd64"

IUSE="+ioscheduler"

LICENSE="GPL-3+"
SLOT="0"

S="${WORKDIR}"

src_install() {
	local udev_rulesdir="$(get_udevdir)"/rules.d

	insinto "${udev_rulesdir}"

	if use ioscheduler; then
		newins - 10-ioschedulers.rules <<-EOF
		# HDD
		ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"

		# SSD
		ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq"

		# NVMe SSD
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none"
		EOF
	fi
}

pkg_postinst() {
	udev_reload
}

pkg_postrm() {
	udev_reload
}