ucitrigger: add options to force enable/disable specific triggers

SVN-Revision: 16718
This commit is contained in:
Felix Fietkau
2009-07-06 19:04:07 +00:00
parent 7ffee1f66f
commit 069dbf6fd4
2 changed files with 62 additions and 4 deletions

View File

@@ -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()