summaryrefslogtreecommitdiffstats
path: root/package/uci/trigger/apply_config
blob: 2ad6c9992a2c9c1a6ef73f69253c98ea9b503922 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/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