aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2013-07-04 13:30:55 +0000
committerJohn Crispin <john@openwrt.org>2013-07-04 13:30:55 +0000
commit6884a8b59d07b86d416058bc1c4b2c738f452066 (patch)
tree42a4ff3cac0eab8f865a8c309352848d7e2013ea
parentdae7f61f31b91a50c4bc7657e4d78282cd11e913 (diff)
downloadupstream-6884a8b59d07b86d416058bc1c4b2c738f452066.tar.gz
upstream-6884a8b59d07b86d416058bc1c4b2c738f452066.tar.bz2
upstream-6884a8b59d07b86d416058bc1c4b2c738f452066.zip
procd: extend shell binding with trigger support
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 37157
-rw-r--r--package/system/procd/files/procd.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh
index e771e0c156..3f1311ca87 100644
--- a/package/system/procd/files/procd.sh
+++ b/package/system/procd/files/procd.sh
@@ -109,6 +109,10 @@ _procd_open_instance() {
json_add_object "$name"
}
+_procd_open_trigger() {
+ json_add_array "triggers"
+}
+
_procd_set_param() {
local type="$1"; shift
@@ -125,6 +129,27 @@ _procd_set_param() {
esac
}
+_procd_add_config_trigger() {
+ json_add_array
+ _procd_add_array_data "config.change"
+
+ json_add_array
+ _procd_add_array_data "if"
+
+ json_add_array
+ _procd_add_array_data "eq" "package" "$1"
+ shift
+ json_close_array
+
+ json_add_array
+ _procd_add_array_data "run_script" "$@"
+ json_close_array
+
+ json_close_array
+
+ json_close_array
+}
+
_procd_append_param() {
local type="$1"; shift
@@ -144,6 +169,10 @@ _procd_close_instance() {
json_close_object
}
+_procd_close_trigger() {
+ json_close_array
+}
+
_procd_add_instance() {
_procd_open_instance
_procd_set_command "$@"
@@ -164,6 +193,9 @@ _procd_wrapper \
procd_open_service \
procd_close_service \
procd_add_instance \
+ procd_add_config_trigger \
+ procd_open_trigger \
+ procd_close_trigger \
procd_open_instance \
procd_close_instance \
procd_set_param \