#!/bin/sh

if [ -x /usr/local/bin/beroconf ] ; then
	BEROCONF=/usr/local/bin/beroconf
else
	BEROCONF=/usr/fallback/beroconf
fi

VERSION=2

APP_IMG_VERS=`cat /usr/local/FILENAME`

function get_need_prod {

	np_info=`${BEROCONF} get root need_prod`

	echo ${np_info} | grep "failed" > /dev/null
	if [ ${?} -eq 0 ]; then
		echo "0"
	else
		echo "${np_info}"
	fi

}

NEED_PROD=$(get_need_prod)

function set_app_status {
	${BEROCONF} set root app-status ${1}
	${BEROCONF} set root app-image ${2}
}

case "$1" in
	start)

		if [ -f /usr/local/FILENAME -a -x /usr/local/init/rcS ] && [ ${NEED_PROD} -eq 0 ]; then
			echo "Starting app services..."
			set_app_status "running" "${APP_IMG_VERS}"
			/usr/local/init/rcS
		else
			echo "Starting app services disabled. (no app-image installed)"
			if [ -f /usr/local/modules/berofix.ko ] && [ ${NEED_PROD} -eq 0 ]; then
				insmod /usr/local/modules/berofix.ko
			fi
			set_app_status "stopped" ""
		fi
		;;
	stop)
		if [ -f /usr/local/FILENAME -a -x /usr/local/init/rcK ] && [ ${NEED_PROD} -eq 0 ]; then
			echo "Stopping app services..."
			set_app_status "stopped" "${APP_IMG_VERS}"
			/usr/local/init/rcK
		else
			echo "Stopping app services disabled. (no app-image installed)"
			if [ -f /usr/local/modules/berofix.ko ] && [ ${NEED_PROD} -eq 0 ]; then
				rmmod berofix
			fi
			set_app_status "stopped" ""
		fi
		;;
	*)
		echo "Usage: $0 {start|stop}" >&2
		exit 1
		;;
esac
