diff --git a/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua b/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua index a47b604371715df06bbdd4beaf90574531fa4d90..357d966e9f750c7cf544e61b57e736273edaaf3c 100644 --- a/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua +++ b/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua @@ -21,7 +21,6 @@ return function(form, uci) o.optional = true function o:write(data) uci:set("gluon-node-info", owner, "contact", data) + uci:save("gluon-node-info") end - - return {'gluon-node-info'} end diff --git a/package/gluon-config-mode-core/luasrc/lib/gluon/config-mode/model/gluon-config-mode/wizard.lua b/package/gluon-config-mode-core/luasrc/lib/gluon/config-mode/model/gluon-config-mode/wizard.lua index d32b56ac31f9befe852d61404b9373e1ada68e73..882b61d958adc975ede64a97585bde0c6043ee6b 100644 --- a/package/gluon-config-mode-core/luasrc/lib/gluon/config-mode/model/gluon-config-mode/wizard.lua +++ b/package/gluon-config-mode-core/luasrc/lib/gluon/config-mode/model/gluon-config-mode/wizard.lua @@ -1,15 +1,6 @@ local util = require "gluon.util" local uci = require("simple-uci").cursor() - -local wizard = {} -for _, entry in ipairs(util.glob('/lib/gluon/config-mode/wizard/*')) do - local f = assert(loadfile(entry)) - setfenv(f, getfenv()) - local w = f() - table.insert(wizard, w) -end - local f = Form(translate("Welcome!")) f.submit = translate('Save & restart') f.reset = false @@ -18,21 +9,10 @@ local s = f:section(Section) s.template = "wizard/welcome" s.package = "gluon-config-mode-core" -local commit = {'gluon-setup-mode'} -local run = {} - -for _, w in ipairs(wizard) do - for _, c in ipairs(w(f, uci) or {}) do - if type(c) == 'string' then - if not util.contains(commit, c) then - table.insert(commit, c) - end - elseif type(c) == 'function' then - table.insert(run, c) - else - error('invalid wizard module return') - end - end +for _, entry in ipairs(util.glob('/lib/gluon/config-mode/wizard/*')) do + local section = assert(loadfile(entry)) + setfenv(section, getfenv()) + section()(f, uci) end function f:write() @@ -41,12 +21,7 @@ function f:write() uci:set("gluon-setup-mode", uci:get_first("gluon-setup-mode", "setup_mode"), "configured", true) - for _, c in ipairs(commit) do - uci:commit(c) - end - for _, r in ipairs(run) do - r() - end + os.execute('gluon-reconfigure') f.template = "wizard/reboot" f.package = "gluon-config-mode-core" diff --git a/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua b/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua index 14ba4c637280c69f82df298b701fbc8d1aceeb30..72c3529e8325c0d7e7921e458e4b204ba5236f18 100644 --- a/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua +++ b/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua @@ -49,20 +49,8 @@ return function(form, uci) o:value(domain.domain_code, domain.domain_name) end - local domain_changed = false - function o:write(data) - if data ~= selected_domain then - domain_changed = true - uci:set('gluon', 'core', 'domain', data) - end - end - - local function reconfigure() - if domain_changed then - os.execute('gluon-reconfigure') - end + uci:set('gluon', 'core', 'domain', data) + uci:save('gluon') end - - return {'gluon', reconfigure} end diff --git a/package/gluon-config-mode-geo-location/luasrc/lib/gluon/config-mode/wizard/0400-geo-location.lua b/package/gluon-config-mode-geo-location/luasrc/lib/gluon/config-mode/wizard/0400-geo-location.lua index 04ebf63aa37c9db66110e9613c012ffc5f29c2d7..5287e4fb84261450840ab11a4ac3883f87e0e978 100644 --- a/package/gluon-config-mode-geo-location/luasrc/lib/gluon/config-mode/wizard/0400-geo-location.lua +++ b/package/gluon-config-mode-geo-location/luasrc/lib/gluon/config-mode/wizard/0400-geo-location.lua @@ -100,5 +100,7 @@ return function(form, uci) end end - return {'gluon-node-info'} + function s:write() + uci:save("gluon-node-info") + end end diff --git a/package/gluon-config-mode-hostname/luasrc/lib/gluon/config-mode/wizard/0100-hostname.lua b/package/gluon-config-mode-hostname/luasrc/lib/gluon/config-mode/wizard/0100-hostname.lua index 1c9a0af37186deb0a3f8d027c11a279194d0370a..5f31dd8fc69a23702a0ea0bef0b4fc7c6b55eb04 100644 --- a/package/gluon-config-mode-hostname/luasrc/lib/gluon/config-mode/wizard/0100-hostname.lua +++ b/package/gluon-config-mode-hostname/luasrc/lib/gluon/config-mode/wizard/0100-hostname.lua @@ -30,7 +30,6 @@ return function(form, uci) function o:write(data) pretty_hostname.set(uci, data or default_hostname) + uci:save('system') end - - return {'system'} end diff --git a/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua b/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua index 6fca9d08c623e322bffb8f4663e62fe12e29cca5..70a1307b522017e6ce5af01f1498c8efb11fb292 100644 --- a/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua +++ b/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua @@ -60,8 +60,5 @@ return function(form, uci) function s:write() uci:save('gluon') - os.execute('exec /lib/gluon/mesh-vpn/update-config') end - - return {'gluon', 'fastd', 'tunneldigger', 'simple-tc'} end diff --git a/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua b/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua index 6a653df85963126137106e5b5ebf0ea88e1cf469..2fbc0fba4fc22329cf2e67552344c5bc2bbfe117 100644 --- a/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua +++ b/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua @@ -44,10 +44,6 @@ return function(form, uci) end uci:save('wireless') end - - os.execute('/lib/gluon/upgrade/200-wireless') end end - - return {'gluon', 'network', 'wireless'} end