#!/bin/sh
#
# sensors:	Hardware sensors monitoring daemon
#
# Version:      $Revision: 1.9 $
#
# chkconfig:	2345 32 68
# description:	Starts and stops hardware sensors monitoring daemon.
# author:	Filip Kalinski <filon@pld.org.pl>

# Source function library.
. /etc/rc.d/init.d/functions

# Get service config
if [ -f /etc/sysconfig/sensors ] ; then
        . /etc/sysconfig/sensors
fi

# See how we were called.
case "$1" in
  start)
	# Check if the service is already running?
	if [ ! -f /var/lock/subsys/sensors ]; then
		if [ -z "$BUS" ] || [ -z "$CHIP" ]; then 
			msg_starting "sensors daemon"; fail
			nls "BUS or CHIP not configured in /etc/sysconfig/sensors"
			exit 1
		fi
		
		# insert modules
		for i in $BUS; do
			_modprobe single die "i2c-$i"
		done
		for i in $CHIP; do
			_modprobe single die "$i"
		done

		if [ "$SENSORS_SET" = "1" ]; then
			sensors -s
		fi
		
		msg_starting "sensors daemon"
		daemon sensord \
			$([ -n "$INTERVAL" ] && echo "-i $INTERVAL") \
			$([ -n "$LOG_INTERVAL" ] && echo "-l $LOG_INTERVAL") \
			-f daemon
		
		RET=$?
		[ $RET -eq 0 ] && touch /var/lock/subsys/sensors
	else
		msg_already_running "sensors daemon"
		exit 1
	fi
	touch /var/lock/subsys/sensors
	;;
  stop)
	if [ -f /var/lock/subsys/sensors ]; then
		msg_stopping "sensors daemon"
		killproc sensord
		
		# remove kernel modules
		for i in $CHIP; do
			/sbin/rmmod $i >/dev/null 2>&1
		done
		for i in $BUS; do
			/sbin/rmmod i2c-$BUS >/dev/null 2>&1
		done
		
		rm -f /var/lock/subsys/sensors
	else
		msg_not_running "sensors daemon"
		exit 1
	fi
	;;
  status)
	status sensors sensord
	sensors
	;;
  restart)
	$0 stop
	$0 start
	;;
  *)
	msg_usage "$0 {start|stop|status|restart}"
	exit 1
esac

exit $RET
