blob: b57e962f6fac216dfc323e438c3a0a1287084bf6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#!/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
}
|