openwrt/package/uci/trigger/apply_config

55 lines
1.4 KiB
Lua
Executable File

#!/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