gluon-core: allow to switch domains during reconfiguration
When gluon.core.switch_domain is set, it replaces the old domain. This also replaces an unnecessary uci:commit() with uci:save().
This commit is contained in:
parent
62e71fbc40
commit
60351a1f19
48
package/gluon-core/luasrc/lib/gluon/upgrade/005-set-domain
Executable file
48
package/gluon-core/luasrc/lib/gluon/upgrade/005-set-domain
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/lua
|
||||||
|
|
||||||
|
local unistd = require 'posix.unistd'
|
||||||
|
|
||||||
|
|
||||||
|
if not unistd.access('/lib/gluon/domains/') then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function domain_exists(domain)
|
||||||
|
return unistd.access('/lib/gluon/domains/' .. domain .. '.json') == 0
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local uci = require('simple-uci').cursor()
|
||||||
|
|
||||||
|
local domain = uci:get('gluon', 'core', 'switch_domain')
|
||||||
|
if domain and not domain_exists(domain) then
|
||||||
|
io.stderr:write(
|
||||||
|
string.format("Warning: invalid mesh domain switch to '%s' configured, not switching\n", domain)
|
||||||
|
)
|
||||||
|
domain = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if not domain then
|
||||||
|
domain = uci:get('gluon', 'core', 'domain')
|
||||||
|
end
|
||||||
|
if domain and not domain_exists(domain) then
|
||||||
|
io.stderr:write(
|
||||||
|
string.format("Warning: invalid mesh domain '%s' configured, resetting to default...\n", domain)
|
||||||
|
)
|
||||||
|
domain = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if not domain then
|
||||||
|
|
||||||
|
-- We can't use gluon.site yet, as it depends on gluon.core.domain to be set
|
||||||
|
local json = require 'jsonc'
|
||||||
|
local site = assert(json.load('/lib/gluon/site.json'))
|
||||||
|
|
||||||
|
domain = site.default_domain
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
uci:set('gluon', 'core', 'domain', domain)
|
||||||
|
uci:delete('gluon', 'core', 'switch_domain')
|
||||||
|
uci:save('gluon')
|
@ -1,27 +0,0 @@
|
|||||||
#!/usr/bin/lua
|
|
||||||
|
|
||||||
local unistd = require 'posix.unistd'
|
|
||||||
|
|
||||||
|
|
||||||
if not unistd.access('/lib/gluon/domains/') then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
local uci = require('simple-uci').cursor()
|
|
||||||
|
|
||||||
local domain = uci:get('gluon', 'core', 'domain')
|
|
||||||
if domain and not unistd.access('/lib/gluon/domains/' .. domain .. '.json') then
|
|
||||||
io.stderr:write(string.format("Warning: invalid mesh domain '%s' configured, resetting to default...\n", domain))
|
|
||||||
domain = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
if domain then return end
|
|
||||||
|
|
||||||
|
|
||||||
-- We can't use gluon.site yet, as it depends on gluon.core.domain to be set
|
|
||||||
local json = require 'jsonc'
|
|
||||||
local site = assert(json.load('/lib/gluon/site.json'))
|
|
||||||
|
|
||||||
uci:set('gluon', 'core', 'domain', site.default_domain)
|
|
||||||
uci:commit('gluon')
|
|
Loading…
Reference in New Issue
Block a user