procd: rework trigger handling

Open/close triggers array around service_triggers call to make using
multiple triggers easier to deal with.
The API was quite confusing, because some functions contained implicit
trigger open/close calls and some didn't.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Felix Fietkau 2016-07-29 13:00:56 +02:00
parent eed30bc869
commit 8891d941e0
1 changed files with 16 additions and 8 deletions

View File

@ -72,7 +72,9 @@ _procd_open_service() {
_procd_close_service() {
json_close_object
_procd_open_trigger
service_triggers
_procd_close_trigger
_procd_ubus_call set
}
@ -117,13 +119,27 @@ _procd_open_instance() {
}
_procd_open_trigger() {
let '_procd_trigger_open = _procd_trigger_open + 1'
[ "$_procd_trigger_open" -gt 1 ] && return
json_add_array "triggers"
}
_procd_close_trigger() {
let '_procd_trigger_open = _procd_trigger_open - 1'
[ "$_procd_trigger_open" -lt 1 ] || return
json_close_array
}
_procd_open_validate() {
json_select ..
json_add_array "validate"
}
_procd_close_validate() {
json_close_array
json_select triggers
}
_procd_add_jail() {
json_add_object "jail"
json_add_string name "$1"
@ -331,14 +347,6 @@ _procd_close_instance() {
json_close_object
}
_procd_close_trigger() {
json_close_array
}
_procd_close_validate() {
json_close_array
}
_procd_add_instance() {
_procd_open_instance
_procd_set_param command "$@"