49 lines
1.1 KiB
Lua
Executable File
49 lines
1.1 KiB
Lua
Executable File
#!/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')
|