diff options
author | Felix Fietkau <nbd@nbd.name> | 2016-07-29 13:00:56 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2016-07-29 16:41:08 +0200 |
commit | 8891d941e054331dab027a58dd24e1aeb88acfc3 (patch) | |
tree | f4b42fb80e3f483fdf4cfe07bf497d70b387681a | |
parent | eed30bc869e5e45814cfc1ebae690153391c0a11 (diff) | |
download | mtk-20170518-8891d941e054331dab027a58dd24e1aeb88acfc3.zip mtk-20170518-8891d941e054331dab027a58dd24e1aeb88acfc3.tar.gz mtk-20170518-8891d941e054331dab027a58dd24e1aeb88acfc3.tar.bz2 |
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>
-rw-r--r-- | package/system/procd/files/procd.sh | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh index 1c2edc6..693a045 100644 --- a/package/system/procd/files/procd.sh +++ b/package/system/procd/files/procd.sh @@ -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 "$@" |