commit:     1603b35ea5891df11790292d16bc4104f53058a8
Author:     Dave Kennedy <dave-kennedy <AT> outlook <DOT> com>
AuthorDate: Thu Apr 27 02:55:49 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug  5 07:30:04 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1603b35e

sys-power/acpilight: add init script

Adding acpilight init script to the default runlevel will enable saving
and restoring the backlight state on shutdown and startup

Closes: https://github.com/gentoo/gentoo/pull/4521

 sys-power/acpilight/acpilight-1.0-r1.ebuild | 46 +++++++++++++++++++++++++++++
 sys-power/acpilight/files/acpilight.confd   | 13 ++++++++
 sys-power/acpilight/files/acpilight.initd   | 41 +++++++++++++++++++++++++
 3 files changed, 100 insertions(+)

diff --git a/sys-power/acpilight/acpilight-1.0-r1.ebuild 
b/sys-power/acpilight/acpilight-1.0-r1.ebuild
new file mode 100644
index 00000000000..8d128ac7d5f
--- /dev/null
+++ b/sys-power/acpilight/acpilight-1.0-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_4 python3_5 )
+
+inherit python-r1 udev
+
+DESCRIPTION="Replacement for xbacklight that uses the ACPI interface to set 
brightness"
+HOMEPAGE="https://github.com/wavexx/acpilight/";
+SRC_URI="https://github.com/wavexx/acpilight/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="virtual/udev
+       ${PYTHON_DEPS}
+       !x11-apps/xbacklight"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+DOCS=( README.rst )
+
+src_install() {
+       python_foreach_impl python_doscript xbacklight
+       udev_dorules "${S}"/90-backlight.rules
+       doman xbacklight.1
+       einstalldocs
+       newinitd "${FILESDIR}"/acpilight.initd acpilight
+       newconfd "${FILESDIR}"/acpilight.confd acpilight
+}
+
+pkg_postinst() {
+       udev_reload
+       einfo
+       elog "To use the xbacklight binary as a regular user, you must be a 
part of the video group"
+       einfo
+       elog "If this utility does not find any backlights to manipulate,"
+       elog "verify you have kernel support on the device and display driver 
enabled."
+       einfo
+       elog "To take advantage of the init script, and automate the process of"
+       elog "saving and restoring the brightness level you should add 
acpilight"
+       elog "to the boot runlevel. You can do this as root like so:"
+       elog "# rc-update add acpilight boot"
+       einfo
+}

diff --git a/sys-power/acpilight/files/acpilight.confd 
b/sys-power/acpilight/files/acpilight.confd
new file mode 100644
index 00000000000..ecb74eb7209
--- /dev/null
+++ b/sys-power/acpilight/files/acpilight.confd
@@ -0,0 +1,13 @@
+# RESTORE_ON_START:
+# Restore brightness level when acpilight starts
+# no - Do not restore state
+# yes - Restore state
+
+RESTORE_ON_START="yes"
+
+# SAVE_ON_STOP:
+# Save brightness level when acpilight stops
+# no - Do not save state
+# yes - Save state
+
+SAVE_ON_STOP="yes"

diff --git a/sys-power/acpilight/files/acpilight.initd 
b/sys-power/acpilight/files/acpilight.initd
new file mode 100644
index 00000000000..0de6029867e
--- /dev/null
+++ b/sys-power/acpilight/files/acpilight.initd
@@ -0,0 +1,41 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+state_dir=/var/lib/acpilight
+
+extra_commands="save restore"
+
+depend() {
+       need localmount
+       after bootmisc modules isapnp coldplug hotplug
+}
+
+restore() {
+       ebegin "Restoring brightness level"
+       if [ ! -r "${state_dir}/state" ] ; then
+               ewarn "No brightness level in ${state_dir}/state"
+               eend 0
+               return 0
+       fi
+       xbacklight "$(cat "${state_dir}/state")"
+       eend $?
+}
+
+save() {
+       ebegin "Saving brightness level"
+       mkdir -p "${state_dir}" && xbacklight -get > "${state_dir}/state"
+       eend $?
+}
+
+start() {
+       if [ "${RESTORE_ON_START}" = "yes" ]; then
+               restore
+       fi
+}
+
+stop() {
+       if [ "${SAVE_ON_STOP}" = "yes" ]; then
+               save
+       fi
+}

Reply via email to