Changeset 16718


Ignore:
Timestamp:
2009-07-06T21:04:07+02:00 (7 years ago)
Author:
nbd
Message:

ucitrigger: add options to force enable/disable specific triggers

Location:
trunk/package/uci/trigger
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/uci/trigger/apply_config

    • Property svn:executable set to *
    r16375 r16718  
    1010        print("    -s: show information about tasks to be executed") 
    1111        print("    -r: reset all triggers") 
     12        print("    -C <trigger> [<section>]: force clear a trigger") 
     13        print("    -S <trigger> [<section>]: force set a trigger") 
    1214        print("") 
    1315end 
     
    4042elseif arg[1] == "-r" then 
    4143        uci.trigger.reset_state() 
     44elseif arg[1] == "-S" then 
     45        local trigger = arg[2] 
     46        local section = arg[3] 
     47        uci.trigger.set_active(trigger, section) 
     48elseif arg[1] == "-C" then 
     49        local trigger = arg[2] 
     50        local section = arg[3] 
     51        uci.trigger.clear_active(trigger, section) 
    4252else 
    4353        usage() 
  • trunk/package/uci/trigger/lib/trigger.lua

    r16375 r16718  
    254254end 
    255255 
     256function save_trigger(name) 
     257        if triggers.active[name] then 
     258                local slist = get_names(triggers.active[name]) 
     259                if #slist > 0 then 
     260                        tctx:set("uci_trigger", name, "sections", slist) 
     261                end 
     262        else 
     263                tctx:delete("uci_trigger", name) 
     264        end 
     265end 
     266 
    256267function set(data, cursor) 
    257268        assert(data ~= nil) 
     
    297308                        active[section[".name"]] = true 
    298309                end 
    299                 local slist = get_names(triggers.active[t.id]) 
    300                 if #slist > 0 then 
    301                         tctx:set("uci_trigger", t.id, "sections", slist) 
    302                 end 
     310                save_trigger(t.id) 
    303311        end 
    304312        tctx:save("uci_trigger") 
     
    336344end 
    337345 
     346function set_active(trigger, sections) 
     347        if triggers == nil then 
     348                load_state() 
     349        end 
     350        if not triggers.list[trigger] then 
     351                return 
     352        end 
     353        if triggers.active[trigger] == nil then 
     354                tctx:set("uci_trigger", trigger, "trigger") 
     355                triggers.active[trigger] = {} 
     356        end 
     357        local active = triggers.active[trigger] 
     358        if triggers.list[trigger].section_only or sections ~= nil then 
     359                for i, t in ipairs(sections) do 
     360                        triggers.active[trigger][t] = true 
     361                end 
     362        end 
     363        save_trigger(trigger) 
     364        tctx:save("uci_trigger") 
     365end 
     366 
     367function clear_active(trigger, sections) 
     368        if triggers == nil then 
     369                load_state() 
     370        end 
     371        if triggers.list[trigger] == nil or triggers.active[trigger] == nil then 
     372                return 
     373        end 
     374        local active = triggers.active[trigger] 
     375        if not triggers.list[trigger].section_only or sections == nil then 
     376                triggers.active[trigger] = nil 
     377        else 
     378                for i, t in ipairs(sections) do 
     379                        triggers.active[trigger][t] = false 
     380                end 
     381        end 
     382        save_trigger(trigger) 
     383        tctx:save("uci_trigger") 
     384end 
     385 
    338386function run(ts) 
    339387        if ts == nil then 
Note: See TracChangeset for help on using the changeset viewer.