diff --git a/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S15gluon-setup-mode b/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S15gluon-setup-mode index b6c1136ef8db8dcf00f334d70c874635163ed4cf..f62edc30ecf25b9ad599d74761237b444735a5e6 100755 --- a/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S15gluon-setup-mode +++ b/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S15gluon-setup-mode @@ -4,7 +4,17 @@ START=15 boot() { - lua -luci -e 'require "luci.model.uci"; uci_state=luci.model.uci.cursor_state(); uci_state:section("gluon-setup-mode", "setup_mode", nil, { running = "1" }); uci_state:save("gluon-setup-mode")' + local enabled="$(uci -q get 'gluon-setup-mode.@setup_mode[0].enabled')" + local configured="$(uci -q get 'gluon-setup-mode.@setup_mode[0].configured')" + uci set 'gluon-setup-mode.@setup_mode[0].enabled=0' uci commit gluon-setup-mode + + if [ "$enabled" = 1 -o "$configured" != 1 ]; then + lua -e 'uci_state=require("luci.model.uci").cursor_state(); uci_state:section("gluon-setup-mode", "setup_mode", nil, { running = "1" }); uci_state:save("gluon-setup-mode")' + else + # This can happen after an upgrade from a version before the config file was called gluon-setup-mode + # We'll just reboot to return to the normal mode... + reboot + fi } diff --git a/package/gluon-setup-mode/files/lib/preinit/90_setup_mode b/package/gluon-setup-mode/files/lib/preinit/90_setup_mode index 31f64f643f7e4fa3ee6d8921c704a9bc484dc60f..396b4f767d22a38554e5d501eeb693fde902641c 100644 --- a/package/gluon-setup-mode/files/lib/preinit/90_setup_mode +++ b/package/gluon-setup-mode/files/lib/preinit/90_setup_mode @@ -1,22 +1,13 @@ #!/bin/sh -check_enable() { - local enabled - local configured - - config_get enabled "$1" enabled - config_get configured "$1" configured +setup_mode_enable() { + local enabled="$(uci -q get 'gluon-setup-mode.@setup_mode[0].enabled')" + local configured="$(uci -q get 'gluon-setup-mode.@setup_mode[0].configured')" - if [ "$enabled" = 1 -o "$configured" != 1 ]; then + if [ "$enabled" = 1 -o "$configured" != 1 ]; then echo '/lib/gluon/setup-mode/rc.d' > /tmp/rc_d_path - fi -} - - -setup_mode_enable() { - config_load gluon-setup-mode - config_foreach check_enable setup_mode + fi } boot_hook_add preinit_main setup_mode_enable