#!/bin/sh

. /lib/functions.sh

UPTIME=`cat /proc/uptime | awk '{print $1}' | xargs printf '%.0f\n'`
logger "reset script trigerred at $UPTIME seconds"
if [[ "$UPTIME" -lt 120 ]]; then
    logger "reset script ($UPTIME) $BUTTON $ACTION after $SEEN milliseconds by $PPID, IGNORED!"
    return 0
fi

OVERLAY="$( grep ' /overlay ' /proc/mounts )"
if [ "$ACTION" == "pressed" ] ;then
	logger "reset script $BUTTON $ACTION after $SEEN milliseconds after last released event by $PPID"
elif [ "$ACTION" == "released" ] ;then
	logger "reset script $BUTTON $ACTION after $SEEN milliseconds after last pressed  event by $PPID"
else
	logger "reset script $BUTTON $ACTION after $SEEN milliseconds by $PPID"
fi

case "$ACTION" in
pressed)
	[ -z "$OVERLAY" ] && return 0

	return 5
;;
timeout)
	. /etc/diag.sh
	set_state failsafe
;;
released)
    if [ "$SEEN" -ge 5000 -a "$SEEN" -lt 20000 -a -n "$OVERLAY" ]
    then
        logger "reset script $BUTTON $ACTION reset to factory defaults"
        echo "FACTORY RESET" > /dev/console
        jffs2reset -y && reboot &
    elif [ "$SEEN" -ge 1000 -a "$SEEN" -lt 5000 ]
    then
        logger "reset script $BUTTON $ACTION reboot"
        echo "REBOOT" > /dev/console
        sync
        reboot
    else
        logger "reset script $BUTTON $ACTION Invalid time for key pressed"
    fi
;;
esac

return 0
