#!/bin/sh

this_prog=snmp_config
CFG=/etc/tinysnmp.conf
ACFG=/tmp/snmp.cfg
i=1
debug=0
rm -f $ACFG

host=`platform`
case $host in
	PCS100 )
		MODDIR=/mnt/lib/tinysnmp ;;
	PCS4* | PCS5* ) 
		MODDIR=/mnt2/lib/tinysnmp ;;
	* )
		MODDIR=/lib/tinysnmp ;;
esac

# wait for the application to create a config file
while [ ! -f $ACFG ]; do
	sleep 2
done

while true; do
	cp $ACFG $ACFG.old
	loc=""
	desc=""
	eval `cat $ACFG`

	[ $debug -ne 0 -a "$loc" ] && logger -t $this_prog "location=$loc"
	[ $debug -ne 0 -a "$desc" ] && logger -t $this_prog "description=$desc"
	
	if [ "$loc" -o "$desc" ]; then
		cp $CFG $CFG.bak
		awk -v loc="$loc" -v desc="$desc" '{\
			if ((loc!="") && ($1=="location")) printf " location \"%s\"\n",loc;\
			else if ((desc!="") && ($1=="description")) printf " description \"%s\"\n",desc;\
			else print $0;\
		}' $CFG.bak > $CFG
		[ $? -eq 0 ] || cp $CFG.bak $CFG
	fi

	# stop any existing SNMP agent
	killall -TERM tinysnmpd 2>/dev/null
	sleep 1
	killall -KILL tinysnmpd 2>/dev/null

	# start SNMP agent
	tinysnmpd -s daemon -l verbose -d $CFG $MODDIR

	# wait for app config to change
	while [ ! $ACFG -nt $ACFG.old ]; do
		sleep 5
	done

done


