8ea9667036
It mostly mimick the style of the existing code. With it and the ubox Lua bindings, you can now send ubus events through Lua or listen for events (you can register for multiple events at the same time). Signed-off-by: Jeff Remy <jeff.remy@gmail.com>
54 lines
943 B
Lua
Executable file
54 lines
943 B
Lua
Executable file
#!/usr/bin/env lua
|
|
|
|
require "ubus"
|
|
require "uloop"
|
|
|
|
uloop.init()
|
|
|
|
local conn = ubus.connect()
|
|
if not conn then
|
|
error("Failed to connect to ubus")
|
|
end
|
|
|
|
local my_method = {
|
|
broken = {
|
|
hello = 1,
|
|
hello1 = {
|
|
function(req)
|
|
end, {id = "fail" }
|
|
},
|
|
},
|
|
test = {
|
|
hello = {
|
|
function(req, msg)
|
|
conn:reply(req, {message="foo"});
|
|
print("Call to function 'hello'")
|
|
for k, v in pairs(msg) do
|
|
print("key=" .. k .. " value=" .. tostring(v))
|
|
end
|
|
end, {id = ubus.INT32, msg = ubus.STRING }
|
|
},
|
|
hello1 = {
|
|
function(req)
|
|
conn:reply(req, {message="foo1"});
|
|
conn:reply(req, {message="foo2"});
|
|
print("Call to function 'hello1'")
|
|
end, {id = ubus.INT32, msg = ubus.STRING }
|
|
}
|
|
}
|
|
}
|
|
|
|
conn:add(my_method)
|
|
|
|
local my_event = {
|
|
test = function(msg)
|
|
print("Call to test event")
|
|
for k, v in pairs(msg) do
|
|
print("key=" .. k .. " value=" .. tostring(v))
|
|
end
|
|
end,
|
|
}
|
|
|
|
conn:listen(my_event)
|
|
|
|
uloop.run()
|