- -- Step 1: get all sections
- for i, conf in ipairs( schemes ) do
- for k, v in pairs( conf ) do
- if v['.type'] == 'section' then
-
- ok, err = _req( TYPE_SECTION, k, v, { "name", "package" } )
- if err then return false, scheme:error(err) end
-
- local r, err = _ref( TYPE_SECTION, v )
- if err then return false, scheme:error(err) end
-
- self.packages[r[1]] =
- self.packages[r[1]] or {
- ["name"] = r[1];
- ["sections"] = { };
- ["variables"] = { };
- }
-
- local p = self.packages[r[1]]
- p.sections[v.name] = p.sections[v.name] or { }
- p.variables[v.name] = p.variables[v.name] or { }
-
- local s = p.sections[v.name]
- local so = scheme:section(v.name)
-
- for k, v2 in pairs(v) do
- if k ~= "name" and k ~= "package" and k:sub(1,1) ~= "." then
- if k == "depends" then
- s.depends = self:_read_dependency( v2, s.depends )
- if not s.depends then
- return false, scheme:error(
- ERR.SME_BADDEP(so, luci.util.serialize_data(s.depends))
- )
- end
- elseif k == "dynamic" or k == "unique" or
- k == "required" or k == "named"
- then
- s[k] = _bool(v2)
- else
- s[k] = v2
- end
- end
- end