gluon-config-mode-core: unconditionally run gluon-reconfigure

Simplify the individual form providers by always running reconfigure. This
also commits all UCI packages, so we can remove all tracking of UCI
sections from the wizard code.

Instead of returning a list of packages to commit, the providers just
save their settings directly. Explicit runs of upgrade scripts are
removed, as they are now run by reconfigure.
This commit is contained in:
Matthias Schiffer 2021-05-14 18:41:15 +02:00
parent 16fab561db
commit 42335a07c9
No known key found for this signature in database
GPG Key ID: 16EF3F64CB201D9C
7 changed files with 12 additions and 56 deletions

View File

@ -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

View File

@ -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"

View File

@ -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
uci:set('gluon', 'core', 'domain', data)
uci:save('gluon')
end
local function reconfigure()
if domain_changed then
os.execute('gluon-reconfigure')
end
end
return {'gluon', reconfigure}
end

View File

@ -100,5 +100,7 @@ return function(form, uci)
end
end
return {'gluon-node-info'}
function s:write()
uci:save("gluon-node-info")
end
end

View File

@ -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

View File

@ -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

View File

@ -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