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 11 name="envsys" 12 rcvar=${name} 13 required_files="/etc/envsys.conf" 14 start_cmd="do_envsys start" 15 stop_cmd="do_envsys stop" 16 envsys_bin="/usr/sbin/envstat" 17 18 do_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 87 load_rc_config ${name} 88 run_rc_command "$1" 89