You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
#!/usr/bin/lua
|
|
require("uci")
|
|
require("uci.trigger")
|
|
|
|
function usage()
|
|
print("Usage: " .. arg[0] .. " [options]")
|
|
print("Options:")
|
|
print(" -a: apply the config changes")
|
|
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
|
|
|
|
if arg[1] == "-s" then
|
|
local triggers = uci.trigger.get_active()
|
|
if #triggers > 0 then
|
|
print("Tasks:")
|
|
for i, a in ipairs(triggers) do
|
|
local trigger = a[1]
|
|
local sections = a[2]
|
|
print(" - " .. uci.trigger.get_description(trigger, sections))
|
|
end
|
|
else
|
|
print "Nothing to do"
|
|
end
|
|
elseif arg[1] == "-t" then
|
|
local triggers = uci.trigger.get_active()
|
|
for i, a in ipairs(triggers) do
|
|
local trigger = a[1]
|
|
local sections = a[2]
|
|
if trigger.section_only then
|
|
print(trigger.id .. " " .. table.concat(sections, " "))
|
|
else
|
|
print(trigger.id)
|
|
end
|
|
end
|
|
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
|
|
|