mirror of https://github.com/hak5/openwrt-owl.git
ucitrigger: add options to force enable/disable specific triggers
SVN-Revision: 16718owl
parent
7ffee1f66f
commit
069dbf6fd4
|
@ -9,6 +9,8 @@ function usage()
|
|||
print(" -t: show matching UCI triggers")
|
||||
print(" -s: show information about tasks to be executed")
|
||||
print(" -r: reset all triggers")
|
||||
print(" -C <trigger> [<section>]: force clear a trigger")
|
||||
print(" -S <trigger> [<section>]: force set a trigger")
|
||||
print("")
|
||||
end
|
||||
|
||||
|
@ -39,6 +41,14 @@ elseif arg[1] == "-a" then
|
|||
uci.trigger.run()
|
||||
elseif arg[1] == "-r" then
|
||||
uci.trigger.reset_state()
|
||||
elseif arg[1] == "-S" then
|
||||
local trigger = arg[2]
|
||||
local section = arg[3]
|
||||
uci.trigger.set_active(trigger, section)
|
||||
elseif arg[1] == "-C" then
|
||||
local trigger = arg[2]
|
||||
local section = arg[3]
|
||||
uci.trigger.clear_active(trigger, section)
|
||||
else
|
||||
usage()
|
||||
end
|
||||
|
|
|
@ -253,6 +253,17 @@ function add(ts)
|
|||
end
|
||||
end
|
||||
|
||||
function save_trigger(name)
|
||||
if triggers.active[name] then
|
||||
local slist = get_names(triggers.active[name])
|
||||
if #slist > 0 then
|
||||
tctx:set("uci_trigger", name, "sections", slist)
|
||||
end
|
||||
else
|
||||
tctx:delete("uci_trigger", name)
|
||||
end
|
||||
end
|
||||
|
||||
function set(data, cursor)
|
||||
assert(data ~= nil)
|
||||
if cursor == nil then
|
||||
|
@ -296,10 +307,7 @@ function set(data, cursor)
|
|||
if section[".name"] then
|
||||
active[section[".name"]] = true
|
||||
end
|
||||
local slist = get_names(triggers.active[t.id])
|
||||
if #slist > 0 then
|
||||
tctx:set("uci_trigger", t.id, "sections", slist)
|
||||
end
|
||||
save_trigger(t.id)
|
||||
end
|
||||
tctx:save("uci_trigger")
|
||||
end
|
||||
|
@ -335,6 +343,46 @@ function get_active()
|
|||
return slist
|
||||
end
|
||||
|
||||
function set_active(trigger, sections)
|
||||
if triggers == nil then
|
||||
load_state()
|
||||
end
|
||||
if not triggers.list[trigger] then
|
||||
return
|
||||
end
|
||||
if triggers.active[trigger] == nil then
|
||||
tctx:set("uci_trigger", trigger, "trigger")
|
||||
triggers.active[trigger] = {}
|
||||
end
|
||||
local active = triggers.active[trigger]
|
||||
if triggers.list[trigger].section_only or sections ~= nil then
|
||||
for i, t in ipairs(sections) do
|
||||
triggers.active[trigger][t] = true
|
||||
end
|
||||
end
|
||||
save_trigger(trigger)
|
||||
tctx:save("uci_trigger")
|
||||
end
|
||||
|
||||
function clear_active(trigger, sections)
|
||||
if triggers == nil then
|
||||
load_state()
|
||||
end
|
||||
if triggers.list[trigger] == nil or triggers.active[trigger] == nil then
|
||||
return
|
||||
end
|
||||
local active = triggers.active[trigger]
|
||||
if not triggers.list[trigger].section_only or sections == nil then
|
||||
triggers.active[trigger] = nil
|
||||
else
|
||||
for i, t in ipairs(sections) do
|
||||
triggers.active[trigger][t] = false
|
||||
end
|
||||
end
|
||||
save_trigger(trigger)
|
||||
tctx:save("uci_trigger")
|
||||
end
|
||||
|
||||
function run(ts)
|
||||
if ts == nil then
|
||||
ts = get_active()
|
||||
|
|
Loading…
Reference in New Issue