summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Bogatov <KAction@debian.org>2019-01-03 11:46:24 +0000
committerDmitry Bogatov <KAction@debian.org>2019-01-05 11:19:03 +0000
commitb968f6c6e06d743fb1dbf493a9aad31b5fc410b7 (patch)
tree332426924c4dec67e34ec0ef15f2365a6d0b2956
parent2fa18152605606b7651a7a9d1c0459d8ba34f929 (diff)
Add initscript to save and restore backlight brightness (Closes: #746221)
-rw-r--r--debian/changelog1
-rw-r--r--debian/initscripts.conffiles1
-rw-r--r--debian/initscripts.lintian-overrides5
-rwxr-xr-xdebian/initscripts.postinst2
-rwxr-xr-xdebian/initscripts.postrm2
-rwxr-xr-xdebian/src/initscripts/etc/init.d/brightness68
6 files changed, 77 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index b42da70d..208cc028 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,7 @@ sysvinit (2.93-3) UNRELEASED; urgency=medium
* Do not mount gfs, ocfs2 and gfs2 in mountall.sh script (Closes: #504748)
* Specify pidfile option to `status_of_proc' function in `init-d-script'
(Closes: #822674)
+ * Add initscript to save and restore backlight brightness (Closes: #746221)
-- Dmitry Bogatov <KAction@debian.org> Thu, 27 Dec 2018 10:06:16 +0000
diff --git a/debian/initscripts.conffiles b/debian/initscripts.conffiles
index dfb94959..b10b6abf 100644
--- a/debian/initscripts.conffiles
+++ b/debian/initscripts.conffiles
@@ -1,4 +1,5 @@
/etc/init.d/bootlogs
+/etc/init.d/brightness
/etc/init.d/bootmisc.sh
/etc/init.d/checkfs.sh
/etc/init.d/checkroot.sh
diff --git a/debian/initscripts.lintian-overrides b/debian/initscripts.lintian-overrides
index 15171e63..e5dca6ac 100644
--- a/debian/initscripts.lintian-overrides
+++ b/debian/initscripts.lintian-overrides
@@ -24,3 +24,8 @@ initscripts: script-in-etc-init.d-not-registered-via-update-rc.d
initscripts: init.d-script-missing-dependency-on-local_fs
initscripts: init.d-script-depends-on-all-virtual-facility
+
+# Init scripts, provided by bin:initscripts are explicitly whitelisted
+# in `data/systemd/init-whitelist' by Lintian. The `brightness' script
+# is very new, and not yet in that whitelist.
+initscripts: missing-systemd-service-for-init.d-rcS-script brightness
diff --git a/debian/initscripts.postinst b/debian/initscripts.postinst
index 21c840e6..2293045d 100755
--- a/debian/initscripts.postinst
+++ b/debian/initscripts.postinst
@@ -81,7 +81,7 @@ if dpkg --compare-versions "$PREV_VER" lt-nl "2.88dsf-23" ; then
fi
fi
-INITSCRIPTS="mountkernfs.sh hostname.sh mountdevsubfs.sh checkroot.sh \
+INITSCRIPTS="mountkernfs.sh brightness hostname.sh mountdevsubfs.sh checkroot.sh \
checkroot-bootclean.sh checkfs.sh mountall.sh mountall-bootclean.sh \
mountnfs.sh mountnfs-bootclean.sh bootmisc.sh urandom halt reboot \
umountroot umountfs umountnfs.sh sendsigs killprocs single motd \
diff --git a/debian/initscripts.postrm b/debian/initscripts.postrm
index 99e62c04..730551f0 100755
--- a/debian/initscripts.postrm
+++ b/debian/initscripts.postrm
@@ -5,7 +5,7 @@
set -e
-INITSCRIPTS="mountkernfs.sh hostname.sh mountdevsubfs.sh checkroot.sh \
+INITSCRIPTS="mountkernfs.sh brightness hostname.sh mountdevsubfs.sh checkroot.sh \
checkroot-bootclean.sh checkfs.sh mountall.sh mountall-bootclean.sh \
mountnfs.sh mountnfs-bootclean.sh bootmisc.sh urandom halt reboot \
umountroot umountfs umountnfs.sh sendsigs killprocs single motd \
diff --git a/debian/src/initscripts/etc/init.d/brightness b/debian/src/initscripts/etc/init.d/brightness
new file mode 100755
index 00000000..3e22bff8
--- /dev/null
+++ b/debian/src/initscripts/etc/init.d/brightness
@@ -0,0 +1,68 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: brightness
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: S
+# Default-Stop: 0 6
+# Short-Description: Save and restore brightness level between restarts.
+# Description: This script saves the brightness level between restarts.
+# It is called from the boot, halt and reboot scripts.
+### END INIT INFO
+readonly SAVEDFILE=/var/lib/initscripts/brightness
+readonly DEFAULT_LEVEL=4
+readonly SYS_CONTROL=/sys/class/backlight/acpi_video0/brightness
+readonly SYS_MAXIMUM=/sys/class/backlight/acpi_video0/max_brightness
+
+. /lib/init/vars.sh
+. /lib/lsb/init-functions
+
+do_status () {
+ MSG="Current brightness level is $(cat ${SYS_CONTROL})"
+ if [ -f $SAVEDFILE ] ; then
+ log_success_msg "${MSG}, saved value is $(cat ${SAVEDFILE})"
+ return 0
+ else
+ log_failure_msg "${MSG}, there is no saved value"
+ return 4
+ fi
+}
+
+do_start () {
+ [ "${VERBOSE}" = no ] ||
+ log_action_begin_msg "Initializing brightness level"
+
+ if [ -f "${SAVEDFILE}" ] ; then
+ cat "${SAVEDFILE}" > "${SYS_CONTROL}"
+ else
+ cat "${SYS_MAXIMUM}" > "${SYS_CONTROL}"
+ fi
+ ES=$?
+
+ [ "${VERBOSE}" = no ] ||
+ log_action_end_msg $ES
+}
+
+do_stop () {
+ [ "${VERBOSE}" = no ] ||
+ log_action_begin_msg "Saving brightness level"
+ cat "${SYS_CONTROL}" > "${SAVEDFILE}"
+ ES=$?
+
+ [ "$VERBOSE" = no ] ||
+ log_action_end_msg $ES
+}
+
+case "$1" in
+ (start) do_start ;;
+ (stop) do_stop ;;
+ (status) do_status ;;
+ (restart|reload|force-reload)
+ echo "Error: argument '$1' not supported" >&2
+ exit 3
+ ;;
+ (*)
+ echo "Usage: brightness start|stop" >&2
+ exit 3
+ ;;
+esac