#!/bin/sh

. /lib/functions.sh

# if restorfactory is on-going , just return 1 ?
if [ -f /var/run/restorefactory.pid ];then
    logger -p user.info -t "restorefactory" "restorfactory is on-going!"
    echo "restorefactory is on-going!" >/dev/console
    exit 1
fi;

TIMEOUT=5
PID_FILE=/var/run/sleep_restorefacotry.pid
RESET_BTN_PRESS_FILE=/tmp/reset_btn_press
RESET_BTN_RELEASE_FILE=/tmp/reset_btn_release

case ${ACTION} in
pressed)
    #echo "${BUTTON} pressed at `date`" >/dev/console
    if [ ! -f "$RESET_BTN_PRESS_FILE" ]; then
        touch $RESET_BTN_PRESS_FILE
    fi;

	if [ -d /sys/class/leds/SYS_LED ];then
		echo 0 > /sys/class/leds/SYS_LED/brightness
		echo 1 > /sys/class/leds/SYS_LED/brightness
	fi;
    if [ -f ${PID_FILE} ];then
        read PID < ${PID_FILE} && kill ${PID} && rm -f ${PID_FILE}
    fi;

	all_in_one=`uci -c /etc/profile.d  get profile.@global[0].all_in_one`
	if [ "$all_in_one" == 1 ] ; then
		sleep "${TIMEOUT}" && /sbin/factoryreset && /bin/eapcontroller-reset && /sbin/reboot &
	else
		sleep "${TIMEOUT}" && /sbin/restorefactory && /sbin/reboot &
	fi
    echo $! > ${PID_FILE}

    cat ${PID_FILE}

;;

released)
	#echo "${BUTTON} released at `date`" >/dev/console
	if [ -f "$RESET_BTN_PRESS_FILE" ]; then
		if [ ! -f "$RESET_BTN_RELEASE_FILE" ]; then
			touch $RESET_BTN_RELEASE_FILE
		fi;
	fi;

	if [ "${SEEN}" -lt ${TIMEOUT} ]; then
	    if [ -f ${PID_FILE} ]; then
            read PID < ${PID_FILE} && kill ${PID} && rm -f ${PID_FILE}
            #echo "restorefactor abort at `date`" >/dev/console
        fi;

		if [ -e /usr/bin/logsave ] ; then
			if [ -d /sys/class/leds/SYS_LED ];then
				echo 3000 >/sys/class/leds/SYS_LED/delay_on
				sleep 3
			fi;
			/usr/bin/logsave
		fi;
	fi;

	if [ -d /sys/class/leds/SYS_LED ];then
		led_state=`uci get switch.led_set.enable`
		if [ $led_state == 'on' ]; then
			echo timer > /sys/class/leds/SYS_LED/trigger
			echo 1000 > /sys/class/leds/SYS_LED/delay_on
			echo 1000 > /sys/class/leds/SYS_LED/delay_off
		else
			echo 0 > /sys/class/leds/SYS_LED/brightness
		fi;
	fi;

;;

*)
    #echo "${BUTTON} got unknown action[${ACTION}] at `date`" >/dev/console
;;

esac

exit 0


