envsys revision 1.1
11.1Sxtraeme#!/bin/sh
21.1Sxtraeme#
31.1Sxtraeme# $NetBSD: envsys,v 1.1 2007/07/01 08:01:29 xtraeme Exp $
41.1Sxtraeme#
51.1Sxtraeme
61.1Sxtraeme# PROVIDE: envsys
71.1Sxtraeme# REQUIRE: LOGIN DAEMON
81.1Sxtraeme
91.1Sxtraeme$_rc_subr_loaded . /etc/rc.subr
101.1Sxtraeme
111.1Sxtraemename="envsys"
121.1Sxtraemercvar=${name}
131.1Sxtraemerequired_files="/etc/envsys.conf"
141.1Sxtraemestart_cmd="do_envsys start"
151.1Sxtraemestop_cmd="do_envsys stop"
161.1Sxtraemeenvsys_bin="/usr/sbin/envstat"
171.1Sxtraeme
181.1Sxtraemedo_envsys()
191.1Sxtraeme{
201.1Sxtraeme	IFS=":"
211.1Sxtraeme	if [ "$1" = "start" ]; then
221.1Sxtraeme		TARGET="Starting"
231.1Sxtraeme	else
241.1Sxtraeme		TARGET="Stopping"
251.1Sxtraeme	fi
261.1Sxtraeme
271.1Sxtraeme	while read -r device sensname target value; do
281.1Sxtraeme		case "${device}" in
291.1Sxtraeme		\#*|"")
301.1Sxtraeme			continue
311.1Sxtraeme			;;
321.1Sxtraeme		esac
331.1Sxtraeme
341.1Sxtraeme		case "${value}" in
351.1Sxtraeme		*degF)
361.1Sxtraeme			add_arg="-f"
371.1Sxtraeme			;;
381.1Sxtraeme		esac
391.1Sxtraeme
401.1Sxtraeme		[ -z ${device} ] && err_msg="missing device"
411.1Sxtraeme		[ -z ${target} ] && err_msg="missing target"
421.1Sxtraeme		[ -z ${value} ] && err_msg="missing value"
431.1Sxtraeme
441.1Sxtraeme		if [ -n "${err_msg}" ]; then
451.1Sxtraeme			echo "${name}: invalid entry (${err_msg})."
461.1Sxtraeme			return 1
471.1Sxtraeme		fi
481.1Sxtraeme
491.1Sxtraeme		if [ "$1" = "start" ]; then
501.1Sxtraeme			${envsys_bin} \
511.1Sxtraeme			    ${add_arg} \
521.1Sxtraeme			    -d ${device} \
531.1Sxtraeme			    -s "${sensname}" \
541.1Sxtraeme			    -m ${target}=${value%%degF}
551.1Sxtraeme		else
561.1Sxtraeme			${envsys_bin} \
571.1Sxtraeme			    ${add_arg} \
581.1Sxtraeme			    -d ${device} \
591.1Sxtraeme			    -s "${sensname}" \
601.1Sxtraeme			    -m ${target}=remove
611.1Sxtraeme		fi
621.1Sxtraeme
631.1Sxtraeme		# reinitialize the var
641.1Sxtraeme		add_arg=
651.1Sxtraeme	done < ${required_files}
661.1Sxtraeme
671.1Sxtraeme	echo "$TARGET sensors monitoring."
681.1Sxtraeme}
691.1Sxtraeme
701.1Sxtraemeload_rc_config ${name}
711.1Sxtraemerun_rc_command "$1"
72