libs/core: Create get_first() in uci model
This commit is contained in:
parent
80b5a4b6f8
commit
99881d9cb6
1 changed files with 31 additions and 2 deletions
|
@ -30,8 +30,9 @@ local table = require "table"
|
||||||
|
|
||||||
|
|
||||||
local setmetatable, rawget, rawset = setmetatable, rawget, rawset
|
local setmetatable, rawget, rawset = setmetatable, rawget, rawset
|
||||||
local error, pairs, ipairs, tostring = error, pairs, ipairs, tostring
|
local require, getmetatable = require, getmetatable
|
||||||
local require, getmetatable, type = require, getmetatable, type
|
local error, pairs, ipairs = error, pairs, ipairs
|
||||||
|
local type, tostring, tonumber = type, tostring, tonumber
|
||||||
|
|
||||||
--- LuCI UCI model library.
|
--- LuCI UCI model library.
|
||||||
-- The typical workflow for UCI is: Get a cursor instance from the
|
-- The typical workflow for UCI is: Get a cursor instance from the
|
||||||
|
@ -167,6 +168,34 @@ function Cursor.get_list(self, config, section, option)
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Get the given option from the first section with the given type.
|
||||||
|
-- @param config UCI config
|
||||||
|
-- @param type UCI section type
|
||||||
|
-- @param option UCI option (optional)
|
||||||
|
-- @param default Default value (optional)
|
||||||
|
-- @return UCI value
|
||||||
|
function Cursor.get_first(self, conf, stype, opt, def)
|
||||||
|
local rv = def
|
||||||
|
|
||||||
|
self:foreach(conf, stype,
|
||||||
|
function(s)
|
||||||
|
local val = not opt and s['.name'] or s[opt]
|
||||||
|
|
||||||
|
if type(def) == "number" then
|
||||||
|
val = tonumber(val)
|
||||||
|
elseif type(def) == "boolean" then
|
||||||
|
val = (val == "1" or val == "true" or val == "enabled")
|
||||||
|
end
|
||||||
|
|
||||||
|
if val ~= nil then
|
||||||
|
rv = val
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
return rv
|
||||||
|
end
|
||||||
|
|
||||||
--- Set given values as list.
|
--- Set given values as list.
|
||||||
-- @param config UCI config
|
-- @param config UCI config
|
||||||
-- @param section UCI section name
|
-- @param section UCI section name
|
||||||
|
|
Loading…
Reference in a new issue