#!/bin/sh /etc/rc.common

START=54
STOP=10
USE_PROCD=1

service_triggers() {
	procd_add_reload_trigger "periodic_reboot"
}

boot() {
	start
}

restart() {
	stop_service
	start_service
}

reload_service() {
	restart
}

stop_service() {
	sed -i "/# periodic_reboot/d" /etc/crontabs/root
	return 0
}

generate_crontab_rule() {
	local enable
	local action
	local modem
	local reboot=""
	local days
	local hour
	local minute

	config_get enable $1 enable

	if [ "$enable" == "1" ]; then
		config_get action "$1" action
		config_get days "$1" days
		config_get hour "$1" hour
		config_get minute "$1" minute
		config_get modem "$1" modem

		if [ -z "$action" ]; then
			logger -t "periodic_reboot" "No action option provided"
		fi

		if [ -z "$days" ]; then
			logger -t "periodic_reboot" "No days option provided"
		fi

		if [ -z "$hour" ]; then
			logger -t "periodic_reboot" "No hour option provided"
		fi

		if [ -z "$minute" ]; then
			logger -t "periodic_reboot" "No minute option provided"
		fi
	fi

	case $action in
		1)
			reboot="/sbin/reboot"
			;;
		2)
			reboot="/usr/sbin/reboot_modem.sh $modem"
			;;
	esac

	echo -e "$minute $hour * * $days $reboot # periodic_reboot" >> /etc/crontabs/root
}

start_service() {
	local target
	. /lib/functions.sh
	config_load periodic_reboot
	config_foreach generate_crontab_rule "reboot_instance"
	/etc/init.d/cron restart
}

