#!/bin/sh /etc/rc.common
. /lib/functions.sh
START=95
STOP=10
USE_PROCD=1
CRONTAB_FILE=/etc/crontabs/root

reload_service() {
        stop_service
        sleep 1
        start_service
}

check_rules() {
    config_get enabled "$1" "enable" "0"
    if [ $enabled != "0" ]; then
        uci -q set ping_reboot.$1.current_try=0
        uci commit ping_reboot
        config_get time "$1" "time" "0"

        case ${time} in
           "30")
              echo "0,30 * * * * /usr/sbin/ping_reboot.sh $1 " >> ${CRONTAB_FILE}
              ;;
           "60")
              echo "0 */1 * * * /usr/sbin/ping_reboot.sh $1 " >> ${CRONTAB_FILE}
              ;;
           "120")
              echo "0 */2 * * * /usr/sbin/ping_reboot.sh $1 " >> ${CRONTAB_FILE}
              ;;
           *)
             echo "*/$time * * * * /usr/sbin/ping_reboot.sh $1 " >> ${CRONTAB_FILE}
             ;;
        esac
    fi
}

start_service() {
    cp /etc/config/ping_reboot /var/ping_reboot_tmp
    config_load 'ping_reboot'
    config_foreach check_rules 'ping_reboot'
    /etc/init.d/cron restart
}

stop_service() {
    local pid=`pidof ping_reboot.sh`
    sed -i '/sbin\/ping_reboot/d' ${CRONTAB_FILE} 2>/dev/null
    [ "$pid" != "" ] && kill -9 ${pid}
}

service_triggers()
{
    procd_add_reload_trigger "ping_reboot"
}