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

START=95
STOP=10

CRON_FILE="/etc/crontabs/root"
MARKER="# smart-reboot"

. /lib/functions.sh

cron_cleanup() {
	[ -f "$CRON_FILE" ] || return 0
	sed -i "\\|$MARKER|d" "$CRON_FILE"
}

cron_append() {
	local minute="$1"
	local hour="$2"
	echo "$minute $hour * * * /usr/sbin/smart-reboot-check $MARKER" >> "$CRON_FILE"
}

gen_schedule() {
	local enabled hour minute time

	config_load smart-reboot
	config_get enabled settings enabled '0'
	config_get time settings time ''

	case "$time" in
		[0-1][0-9]:[0-5][0-9]|2[0-3]:[0-5][0-9])
			hour="${time%:*}"
			minute="${time#*:}"
			hour=$((10#$hour))
			minute=$((10#$minute))
		;;
		*)
			config_get hour settings hour '4'
			config_get minute settings minute '0'
		;;
	esac

	cron_cleanup

	[ "$enabled" = "1" ] || return 0
	[ -n "$hour" ] || return 0
	[ -n "$minute" ] || return 0

	cron_append "$minute" "$hour"
}

reload_service() {
	start_service
}

start_service() {
	[ -f "$CRON_FILE" ] || touch "$CRON_FILE"
	gen_schedule
	/etc/init.d/cron restart >/dev/null 2>&1
}

stop_service() {
	cron_cleanup
	/etc/init.d/cron restart >/dev/null 2>&1
}

service_triggers() {
	procd_add_reload_trigger "smart-reboot"
}
