#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

extra_started_commands="reload"

depend() {
	need localmount
	use acpid hald
	after bootmisc
}

checkconfig() {
	if [ ! -f /proc/sys/vm/laptop_mode ] ; then
		eerror "Kernel does not support laptop_mode"
		return 1
	fi
}

start() {
	checkconfig || return 1

	ebegin "Starting laptop_mode"
	# bug #342049 fix
	# check if dir exists and creates if it doesn't
	checkpath -q -d -m 755 /var/run/laptop-mode-tools
	touch /var/run/laptop-mode-tools/enabled
	/usr/sbin/laptop_mode auto >/dev/null
	eend $?
}

stop() {
	ebegin "Stopping laptop_mode"
	rm -f /var/run/laptop-mode-tools/enabled
	/usr/sbin/laptop_mode stop >/dev/null
	eend $?
}

reload() {
	if ! service_started "${SVCNAME}" ; then
		eerror "${SVCNAME} has not yet been started"
		return 1
	fi

	ebegin "Reloading laptop_mode"
	/usr/sbin/laptop_mode stop >/dev/null
	rm -f /var/run/laptop-mode-tools/*
	/usr/sbin/laptop_mode auto force >/dev/null
	eend $?
}

# vim: set ts=4 :
