add ucitrigger: a uci plugin, command line tool and lua interface for automatically...
[openwrt-10.03/.git] / package / uci / trigger / apply_config
diff --git a/package/uci/trigger/apply_config b/package/uci/trigger/apply_config
new file mode 100644 (file)
index 0000000..0d9c6cf
--- /dev/null
@@ -0,0 +1,44 @@
+#!/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("")
+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()
+else
+       usage()
+end