2 LuCI UCI model library.
4 The typical workflow for UCI is: Get a cursor instance from the
5 cursor factory, modify data (via Cursor.add, Cursor.delete, etc.),
6 save the changes to the staging area via Cursor.save and finally
7 Cursor.commit the data to the actual config files.
8 LuCI then needs to Cursor.apply the changes so deamons etc. are
12 module "luci.model.uci"
15 Create a new UCI-Cursor.
23 Create a new Cursor initialized to the state directory.
31 Applies UCI configuration changes
35 @param configlist List of UCI configurations
36 @param command Don't apply only return the command
40 Delete all sections of a given type that match certain criteria.
43 @name Cursor.delete_all
44 @param config UCI config
45 @param type UCI section type
46 @param comparator Function that will be called for each section and returns
47 a boolean whether to delete the current section (optional)
51 Create a new section and initialize it with data.
55 @param config UCI config
56 @param type UCI section type
57 @param name UCI section name (optional)
58 @param values Table of key - value pairs to initialize the section with
59 @return Name of created section
63 Updated the data of a section using data from a table.
67 @param config UCI config
68 @param section UCI section name (optional)
69 @param values Table of key - value pairs to update the section with
73 Get a boolean option and return it's value as true or false.
77 @param config UCI config
78 @param section UCI section name
79 @param option UCI option
84 Get an option or list and return values as table.
88 @param config UCI config
89 @param section UCI section name
90 @param option UCI option
91 @return table. If the option was not found, you will simply get an empty
96 Get the given option from the first section with the given type.
99 @name Cursor.get_first
100 @param config UCI config
101 @param type UCI section type
102 @param option UCI option (optional)
103 @param default Default value (optional)
108 Set given values as list. Setting a list option to an empty list
109 has the same effect as deleting the option.
112 @name Cursor.set_list
113 @param config UCI config
114 @param section UCI section name
115 @param option UCI option
116 @param value Value or table. Non-table values will be set as single
118 @return Boolean whether operation succeeded
122 Create a sub-state of this cursor.
124 The sub-state is tied to the parent curser, means it the parent unloads or
125 loads configs, the sub state will do so as well.
128 @name Cursor.substate
129 @return UCI state cursor tied to the parent cursor
133 Add an anonymous section.
137 @param config UCI config
138 @param type UCI section type
139 @return Name of created section
143 Get a table of saved but uncommitted changes.
147 @param config UCI config
148 @return Table of changes
153 Commit saved changes.
157 @param config UCI config
158 @return Boolean whether operation succeeded
164 Deletes a section or an option.
168 @param config UCI config
169 @param section UCI section name
170 @param option UCI option (optional)
171 @return Boolean whether operation succeeded
175 Call a function for every section of a certain type.
179 @param config UCI config
180 @param type UCI section type
181 @param callback Function to be called
182 @return Boolean whether operation succeeded
186 Get a section type or an option
190 @param config UCI config
191 @param section UCI section name
192 @param option UCI option (optional)
197 Get all sections of a config or all values of a section.
201 @param config UCI config
202 @param section UCI section name (optional)
203 @return Table of UCI sections or table of UCI values
207 Manually load a config.
211 @param config UCI config
212 @return Boolean whether operation succeeded
218 Revert saved but uncommitted changes.
222 @param config UCI config
223 @return Boolean whether operation succeeded
229 Saves changes made to a config to make them committable.
233 @param config UCI config
234 @return Boolean whether operation succeeded
240 Set a value or create a named section.
242 When invoked with three arguments `config`, `sectionname`, `sectiontype`,
243 then a named section of the given type is created.
245 When invoked with four arguments `config`, `sectionname`, `optionname` and
246 `optionvalue` then the value of the specified option is set to the given value.
250 @param config UCI config
251 @param section UCI section name
252 @param option UCI option or UCI section type
253 @param value UCI value or nothing if you want to create a section
254 @return Boolean whether operation succeeded
258 Get the configuration directory.
261 @name Cursor.get_confdir
262 @return Configuration directory
266 Get the directory for uncomitted changes.
269 @name Cursor.get_savedir
270 @return Save directory
274 Get the effective session ID.
277 @name Cursor.get_session_id
278 @return String containing the session ID
282 Set the configuration directory.
285 @name Cursor.set_confdir
286 @param directory UCI configuration directory
287 @return Boolean whether operation succeeded
291 Set the directory for uncommited changes.
294 @name Cursor.set_savedir
295 @param directory UCI changes directory
296 @return Boolean whether operation succeeded
300 Set the effective session ID.
303 @name Cursor.set_session_id
304 @param id String containing the session ID to set
305 @return Boolean whether operation succeeded
309 Discard changes made to a config.
313 @param config UCI config
314 @return Boolean whether operation succeeded