123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/bin/sh /etc/rc.common
- START=80
- USE_PROCD=1
- register_init() {
- local config="$1"
- local init="$2"
- shift; shift
- if [ -x "$init" ] && "$init" enabled && ! grep -sqE 'USE_PROCD=.' "$init"; then
- logger -t "ucitrack" "Setting up /etc/config/$config reload trigger for non-procd $init"
- procd_add_config_trigger "config.change" "$config" "$init" "$@"
- fi
- }
- register_trigger() {
- local sid="$1"
- local config init exec affects affected
- config_get config "$sid" TYPE
- config_get init "$sid" init
- config_get exec "$sid" exec
- config_get affects "$sid" affects
- if [ -n "$init" ]; then
- register_init "$config" "/etc/init.d/$init" "reload"
- fi
- if [ -n "$exec" ]; then
- case "$exec" in
- /etc/init.d/*)
- set -- $exec
- register_init "$config" "$@"
- ;;
- *)
- logger -t "ucitrack" "Setting up non-init /etc/config/$config reload handler: $exec"
- procd_add_config_trigger "config.change" "$config" "$exec"
- ;;
- esac
- fi
- for affected in $affects; do
- logger -t "ucitrack" "Setting up /etc/config/$config reload dependency on /etc/config/$affected"
- procd_add_config_trigger "config.change" "$affected" \
- ubus call service event \
- "$(printf '{"type":"config.change","data":{"package":"%s"}}' $config)"
- done
- }
- service_triggers() {
- config_foreach register_trigger
- }
- start_service() {
- config_load ucitrack
- }
|