diff options
Diffstat (limited to 'package/base-files')
-rwxr-xr-x | package/base-files/files/etc/rc.button/reset | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/package/base-files/files/etc/rc.button/reset b/package/base-files/files/etc/rc.button/reset index 3e241460ef..c6dc7cfbc0 100755 --- a/package/base-files/files/etc/rc.button/reset +++ b/package/base-files/files/etc/rc.button/reset @@ -1,20 +1,27 @@ #!/bin/sh -[ "${ACTION}" = "released" ] || exit 0 - . /lib/functions.sh -logger "$BUTTON pressed for $SEEN seconds" - -if [ "$SEEN" -lt 1 ] -then - echo "REBOOT" > /dev/console - sync - reboot -elif [ "$SEEN" -gt 5 ] -then - echo "FACTORY RESET" > /dev/console - jffs2reset -y && reboot & -fi +case "$ACTION" in +pressed) + return 5 +;; +timeout) + . /etc/diag.sh + set_state failsafe +;; +released) + if [ "$SEEN" -lt 1 ] + then + echo "REBOOT" > /dev/console + sync + reboot + elif [ "$SEEN" -gt 5 ] + then + echo "FACTORY RESET" > /dev/console + jffs2reset -y && reboot & + fi +;; +esac return 0 |