#!/bin/sh
#
# sensors_modules:	Hardware sensors monitoring
#
# Version:	$Revision: 1.4 $
#
# chkconfig:	2345 31 69
# description:	Loads and removes hardware sensors modules

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

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

start() {
	# Check if the service is already running?
	if [ ! -f /var/lock/subsys/sensors_modules ]; then
		if [ -z "$BUS" ] && [ -z "$CHIP" ]; then
			msg_starting "sensors modules"; fail
			nls "BUS or CHIP not configured in /etc/sysconfig/sensors_modules" >&2
			exit 6
		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
		touch /var/lock/subsys/sensors_modules
	else
		msg_already_running "sensors modules"
	fi
}

stop() {
	if [ -f /var/lock/subsys/sensors_modules ]; then
		msg_stopping "sensors modules"

		# 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
		ok
		rm -f /var/lock/subsys/sensors_modules
	else
		msg_not_running "sensors modules"
	fi
}

RETVAL=0
# See how we were called.
case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  status)
	sensors
	;;
  restart|force-reload)
	stop
	start
	;;
  *)
	msg_usage "$0 {start|stop|restart|force-reload|status}"
	exit 3
esac

exit $RETVAL
