gluon-setup-mode: cleanup and upgrade fix
Since switching to Barrier Breaker/procd, we'd not notice if we were upgrading from a version before renaming the config file to gluon-setup-mode as the upgrade scripts run after the preinit. Fix this by checking later during setup mode init again and rebooting into the regular run mode if we detect this case.
This commit is contained in:
parent
f3ff07b1a5
commit
f9e5e3325f
@ -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
|
||||
}
|
||||
|
@ -1,22 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
check_enable() {
|
||||
local enabled
|
||||
local configured
|
||||
|
||||
config_get enabled "$1" enabled
|
||||
config_get configured "$1" configured
|
||||
|
||||
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
|
||||
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
|
||||
echo '/lib/gluon/setup-mode/rc.d' > /tmp/rc_d_path
|
||||
fi
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main setup_mode_enable
|
||||
|
Loading…
Reference in New Issue
Block a user