gluon-core: preserve explicitly marked network and system sections
A section can be marked as preseved by setting the gluon_preserve option to 1. In addition the following conditions must hold: - The preserved section must not already exist after OpenWrt's and Gluons setup scripts run. Modifying existing sections is currently unsupported. - Preserved sections must be named, so it can be detected whether a section conflicts with a preexisting one.
This commit is contained in:
parent
6dcee2e324
commit
a671b5081c
19
package/gluon-core/luasrc/lib/gluon/upgrade/997-migrate-preserved
Executable file
19
package/gluon-core/luasrc/lib/gluon/upgrade/997-migrate-preserved
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/lua
|
||||||
|
|
||||||
|
local uci = require('simple-uci').cursor()
|
||||||
|
|
||||||
|
for _, config in ipairs({'system', 'network'}) do
|
||||||
|
uci:foreach(config .. '_gluon-old', nil, function(s)
|
||||||
|
if s.gluon_preserve ~= '1' then return end
|
||||||
|
|
||||||
|
-- Unnamed sections can't be preserved
|
||||||
|
if s['.anonymous'] then return end
|
||||||
|
|
||||||
|
-- We don't allow overwriting existing sections
|
||||||
|
if uci:get(config, s['.name']) then return end
|
||||||
|
|
||||||
|
uci:section(config, s['.type'], s['.name'], s)
|
||||||
|
end)
|
||||||
|
|
||||||
|
uci:save(config)
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user