195398674f8b619ff53299d1b7d0e936a6ceae7e
[project/luci.git] / uci.lua
1 --[[
2 LuCI - Lua Configuration Interface
3
4 Copyright 2008 Steven Barth <steven@midlink.org>
5 Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 $Id$
14 ]]--
15
16 local uci   = require "luci.model.uci".cursor()
17 local ucis  = require "luci.model.uci".cursor_state()
18 local table = require "table"
19
20
21 module "luci.jsonrpcbind.uci"
22 _M, _PACKAGE, _NAME = nil, nil, nil
23
24 function add(config, ...)
25         uci:load(config)
26         local stat = uci:add(config, ...)
27         return uci:save(config) and stat
28 end
29
30 function apply(config)
31         return uci:apply(config)
32 end
33
34 function changes(...)
35         return uci:changes(...)
36 end
37
38 function commit(config)
39         return uci:load(config) and uci:commit(config)
40 end
41
42 function delete(config, ...)
43         uci:load(config) 
44         return uci:delete(config, ...) and uci:save(config) 
45 end
46
47 function delete_all(config, ...)
48         uci:load(config)
49         return uci:delete_all(config, ...) and uci:save(config) 
50 end
51
52 function foreach(config, stype)
53         uci:load(config)
54         local sections = {}
55         
56         return uci:foreach(config, stype, function(section)
57                 table.insert(sections, section)
58         end) and sections
59 end
60
61 function get(config, ...)
62         uci:load(config)
63         return uci:get(config, ...)
64 end
65
66 function get_all(config, ...)
67         uci:load(config)
68         return uci:get_all(config, ...)
69 end
70
71 function get_state(config, ...)
72         ucis:load(config)
73         return ucis:get(config, ...)
74 end
75
76 function revert(config)
77         return uci:load(config) and uci:revert(config)
78 end
79
80 function section(config, ...)
81         uci:load(config)
82         return uci:section(config, ...) and uci:save(config)
83 end
84
85 function set(config, ...)
86         uci:load(config)
87         return uci:set(config, ...) and uci:save(config)
88 end
89
90 function tset(config, ...)
91         uci:load(config)
92         return uci:tset(config, ...) and uci:save(config)
93 end
94