| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/bin/sh /etc/rc.common
- # Copyright (c) 2021 OpenWrt.org
- START=11
- USE_PROCD=1
- PROG=/usr/sbin/udebugd
- start_service() {
- procd_open_instance
- procd_set_param command "$PROG"
- procd_set_param respawn
- procd_close_instance
- }
- get_vars() {
- local cfg="$1"
- uci show "udebug.$cfg" | while read LINE; do
- cur="${LINE##udebug.$1.}"
- [[ "$cur" = "$LINE" ]] && continue
- var="${cur%%=*}"
- [[ "$cur" = "$var" ]] && continue
- echo "$var"
- done
- }
- add_debug_service() {
- local cfg="$1"
- json_add_object "$cfg"
- for var in $(get_vars "$cfg"); do
- config_get val "$cfg" "$var"
- json_add_string "$var" "$val"
- done
- json_close_object "$cfg"
- }
- reload_service() {
- config_load udebug
- json_init
- json_add_object service
- config_foreach add_debug_service service
- json_close_object
- ubus call udebug set_config "$(json_dump)"
- }
- service_triggers() {
- procd_add_reload_trigger udebug
- }
- service_started() {
- ubus -t 10 wait_for udebug
- [ $? = 0 ] && reload_service
- }
|