Browse Source

procd: extend shell binding with trigger support

Signed-off-by: John Crispin <[email protected]>

SVN-Revision: 37157
John Crispin 12 years ago
parent
commit
6884a8b59d
1 changed files with 32 additions and 0 deletions
  1. 32 0
      package/system/procd/files/procd.sh

+ 32 - 0
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 \