envsys revision 1.2
1#!/bin/sh
2#
3# $NetBSD: envsys,v 1.2 2007/07/25 12:47:44 xtraeme Exp $
4#
5
6# PROVIDE: envsys
7# REQUIRE: LOGIN DAEMON
8
9$_rc_subr_loaded . /etc/rc.subr
10
11name="envsys"
12rcvar=${name}
13required_files="/etc/envsys.conf"
14start_cmd="do_envsys start"
15stop_cmd="do_envsys stop"
16envsys_bin="/usr/sbin/envstat"
17
18do_envsys()
19{
20	IFS=":"
21	if [ "$1" = "start" ]; then
22		TARGET="Starting"
23	else
24		TARGET="Stopping"
25	fi
26
27	while read -r device sensname target value; do
28		case "${device}" in
29		\#*|"")
30			continue
31			;;
32		esac
33
34		case "${value}" in
35		*degF)
36			add_arg="-f"
37			;;
38		esac
39
40		case "$1" in
41		start)
42			case "${target}" in
43			*desc)
44				continue
45				;;
46			esac
47			;;
48		stop)
49			case "${target}" in
50			*desc|*rfact)
51				continue
52				;;
53			esac
54			;;
55		esac
56
57		[ -z ${device} ] && err_msg="missing device"
58		[ -z ${target} ] && err_msg="missing target"
59		[ -z ${value} ] && err_msg="missing value"
60
61		if [ -n "${err_msg}" ]; then
62			echo "${name}: invalid entry (${err_msg})."
63			return 1
64		fi
65
66		if [ "$1" = "start" ]; then
67			${envsys_bin} \
68			    ${add_arg} \
69			    -d ${device} \
70			    -s "${sensname}" \
71			    -m ${target}=${value%%degF}
72		else
73			${envsys_bin} \
74			    ${add_arg} \
75			    -d ${device} \
76			    -s "${sensname}" \
77			    -m ${target}=remove
78		fi
79
80		# reinitialize the var
81		add_arg=
82	done < ${required_files}
83
84	echo "$TARGET sensors monitoring."
85}
86
87load_rc_config ${name}
88run_rc_command "$1"
89