X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=libs%2Fuci%2Fluasrc%2Fmodel%2Fuci.lua;h=665866e682e11404ad9da0cce16d852dc664f20e;hb=58f183a28269ded9f41eb980b63a607421689f63;hp=bd6aba41a4252b54367e7b825ee18418b400d219;hpb=a7a2afdb0a51f28a716d34698152863c59eaf0ca;p=project%2Fluci.git diff --git a/libs/uci/luasrc/model/uci.lua b/libs/uci/luasrc/model/uci.lua index bd6aba41a..665866e68 100644 --- a/libs/uci/luasrc/model/uci.lua +++ b/libs/uci/luasrc/model/uci.lua @@ -27,8 +27,9 @@ local uci = require("uci") local util = require("luci.util") local setmetatable, rawget, rawset = setmetatable, rawget, rawset local error, pairs, ipairs, tostring = error, pairs, ipairs, tostring -local table, print = table, print +local table = table +--- LuCI UCI model library. module("luci.model.uci", function(m) setmetatable(m, {__index = uci}) end) savedir_default = "/tmp/.uci" @@ -36,6 +37,11 @@ confdir_default = "/etc/config" savedir_state = "/var/state" +--- Delete all sections of a given type that match certain criteria. +-- @param config UCI config +-- @param type UCI section type +-- @param comparator Function that will be called for each section and +-- returns a boolean whether to delete the current section (optional) function delete_all(config, type, comparator) local del = {} local function helper (section) @@ -51,6 +57,12 @@ function delete_all(config, type, comparator) end end +--- Create a new section and initialize it with data. +-- @param config UCI config +-- @param type UCI section type +-- @param name UCI section name (optional) +-- @param values Table of key - value pairs to initialize the section with +-- @return Name of created section function section(config, type, name, values) local stat = true if name then @@ -67,6 +79,21 @@ function section(config, type, name, values) return stat and name end +--- Get a certain state value. +-- @param ... Parameters passed to function get +-- @return UCI value +-- @see get +function get_statevalue(...) + set_savedir(savedir_state) + local result = get(...) + set_savedir(savedir_default) + return result +end + +--- Updated the data of a section using data from a table. +-- @param config UCI config +-- @param section UCI section name (optional) +-- @param values Table of key - value pairs to update the section with function tset(config, section, values) local stat = true for k, v in pairs(values) do @@ -74,4 +101,109 @@ function tset(config, section, values) stat = stat and set(config, section, k, v) end end + return stat end + + +--- Add an anonymous section. +-- @class function +-- @name add +-- @param config UCI config +-- @param type UCI section type +-- @return Name of created section + +--- Get a table of unsaved changes. +-- @class function +-- @name changes +-- @param config UCI config +-- @return Table of changes + +--- Commit unsaved changes. +-- @class function +-- @name commit +-- @param config UCI config +-- @return Boolean whether operation succeeded +-- @see revert + +--- Deletes a section or an option. +-- @class function +-- @name delete +-- @param config UCI config +-- @param section UCI section name +-- @param option UCI option (optional) +-- @return Boolean whether operation succeeded + +--- Call a function for every section of a certain type. +-- @class function +-- @name foreach +-- @param config UCI config +-- @param type UCI section type +-- @param callback Function to be called +-- @return Boolean whether operation succeeded + +--- Get a section type or an option +-- @class function +-- @name get +-- @param config UCI config +-- @param section UCI section name +-- @param option UCI option (optional) +-- @return UCI value + +--- Get all sections of a config or all values of a section. +-- @class function +-- @name get_all +-- @param config UCI config +-- @param section UCI section name (optional) +-- @return Table of UCI sections or table of UCI values + +--- Manually load a config. +-- @class function +-- @name load +-- @param config UCI config +-- @return Boolean whether operation succeeded +-- @see save +-- @see unload + +--- Revert unsaved changes. +-- @class function +-- @name revert +-- @param config UCI config +-- @return Boolean whether operation succeeded +-- @see commit + +--- Saves changes made to a config to make them committable. +-- @class function +-- @name save +-- @param config UCI config +-- @return Boolean whether operation succeeded +-- @see load +-- @see unload + +--- Set a value or create a named section. +-- @class function +-- @name set +-- @param config UCI config +-- @param section UCI section name +-- @param option UCI option or UCI section type +-- @param value UCI value or nil if you want to create a section +-- @return Boolean whether operation succeeded + +--- Set the configuration directory. +-- @class function +-- @name set_confdir +-- @param directory UCI configuration directory +-- @return Boolean whether operation succeeded + +--- Set the directory for uncommited changes. +-- @class function +-- @name set_savedir +-- @param directory UCI changes directory +-- @return Boolean whether operation succeeded + +--- Discard changes made to a config. +-- @class function +-- @name unload +-- @param config UCI config +-- @return Boolean whether operation succeeded +-- @see load +-- @see save