2008-06-05 19:15:31 +00:00
|
|
|
--[[
|
|
|
|
LuCI - UCI mpdel
|
|
|
|
|
|
|
|
Description:
|
|
|
|
Generalized UCI model
|
|
|
|
|
|
|
|
FileId:
|
|
|
|
$Id$
|
|
|
|
|
|
|
|
License:
|
|
|
|
Copyright 2008 Steven Barth <steven@midlink.org>
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
|
|
|
|
]]--
|
|
|
|
local uci = require("uci")
|
|
|
|
local util = require("luci.util")
|
2008-06-06 20:45:33 +00:00
|
|
|
local setmetatable, rawget, rawset = setmetatable, rawget, rawset
|
|
|
|
local error, pairs, ipairs, tostring = error, pairs, ipairs, tostring
|
2008-06-07 07:58:35 +00:00
|
|
|
local table, print = table, print
|
2008-06-05 19:15:31 +00:00
|
|
|
|
|
|
|
module("luci.model.uci", function(m) setmetatable(m, {__index = uci}) end)
|
|
|
|
|
2008-06-05 19:16:38 +00:00
|
|
|
savedir_default = "/tmp/.uci"
|
|
|
|
confdir_default = "/etc/config"
|
|
|
|
|
|
|
|
savedir_state = "/var/state"
|
|
|
|
|
2008-06-06 20:45:33 +00:00
|
|
|
function delete_all(config, type, comparator)
|
|
|
|
local del = {}
|
2008-06-07 07:58:35 +00:00
|
|
|
local function helper (section)
|
2008-06-06 20:45:33 +00:00
|
|
|
if not comparator or comparator(section) then
|
|
|
|
table.insert(del, section[".name"])
|
|
|
|
end
|
2008-06-07 07:58:35 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
foreach(config, type, helper)
|
|
|
|
|
2008-06-06 20:45:33 +00:00
|
|
|
for i, j in ipairs(del) do
|
2008-06-07 07:58:35 +00:00
|
|
|
delete(config, j)
|
2008-06-05 19:15:31 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2008-06-06 20:45:33 +00:00
|
|
|
function section(config, type, name, values)
|
|
|
|
local stat = true
|
|
|
|
if name then
|
|
|
|
stat = set(config, name, type)
|
2008-06-05 19:15:31 +00:00
|
|
|
else
|
2008-06-06 20:45:33 +00:00
|
|
|
name = add(config, type)
|
|
|
|
stat = name and true
|
2008-06-05 19:15:31 +00:00
|
|
|
end
|
2008-06-06 20:45:33 +00:00
|
|
|
|
|
|
|
if stat and values then
|
|
|
|
stat = tset(config, name, values)
|
|
|
|
end
|
|
|
|
|
|
|
|
return stat and name
|
2008-06-05 19:15:31 +00:00
|
|
|
end
|
|
|
|
|
2008-06-06 20:45:33 +00:00
|
|
|
function tset(config, section, values)
|
|
|
|
local stat = true
|
|
|
|
for k, v in pairs(values) do
|
|
|
|
if k:sub(1, 1) ~= "." then
|
|
|
|
stat = stat and set(config, section, k, v)
|
2008-06-05 19:15:31 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|