39 lines · 905 B · Text
RawDownload
check_requires() { # Check required files, monitors and reactors	for i in "$@" ; do		p=${i%:program}		m=${i%:monitor}		r=${i%:reactor}		if [ $p != $i ]; then			if ! which $p ; then				echo "Required program $p is not found."				exit_unresolved			fi		elif [ $m != $i ]; then			if ! grep -wq $m available_monitors ; then				echo "Required monitor $m is not configured."				exit_unsupported			fi		elif [ $r != $i ]; then			if ! grep -wq $r available_reactors ; then				echo "Required reactor $r is not configured."				exit_unsupported			fi		elif [ ! -e $i ]; then			echo "Required feature interface $i doesn't exist."			exit_unsupported		fi	done} initialize_system() { # Reset RV to initial-state	echo > enabled_monitors	for m in monitors/*; do		echo nop > $m/reactors || true	done	echo 1 > monitoring_on	echo 1 > reacting_on || true} finish_system() {	initialize_system}