luci-base: add transitional /etc/init.d/ucitrack
[project/luci.git] / modules / luci-base / root / etc / init.d / ucitrack
1 #!/bin/sh /etc/rc.common
2
3 START=80
4 USE_PROCD=1
5
6 register_init() {
7         local config="$1"
8         local init="$2"
9         shift; shift
10
11         if [ -x "$init" ] && "$init" enabled && ! grep -sqE 'USE_PROCD=.' "$init"; then
12                 logger -t "ucitrack" "Setting up /etc/config/$config reload trigger for non-procd $init"
13                 procd_add_config_trigger "config.change" "$config" "$init" "$@"
14         fi
15 }
16
17 register_trigger() {
18         local sid="$1"
19         local config init exec affects affected
20
21         config_get config "$sid" TYPE
22         config_get init "$sid" init
23         config_get exec "$sid" exec
24         config_get affects "$sid" affects
25
26         if [ -n "$init" ]; then
27                 register_init "$config" "/etc/init.d/$init" "reload"
28         fi
29
30         if [ -n "$exec" ]; then
31                 case "$exec" in
32                         /etc/init.d/*)
33                                 set -- $exec
34                                 register_init "$config" "$@"
35                         ;;
36                         *)
37                                 logger -t "ucitrack" "Setting up non-init /etc/config/$config reload handler: $exec"
38                                 procd_add_config_trigger "config.change" "$config" "$exec"
39                         ;;
40                 esac
41         fi
42
43         for affected in $affects; do
44                 logger -t "ucitrack" "Setting up /etc/config/$config reload dependency on /etc/config/$affected"
45                 procd_add_config_trigger "config.change" "$affected" \
46                         ubus call service event \
47                         "$(printf '{"type":"config.change","data":{"package":"%s"}}' $config)"
48         done
49 }
50
51 service_triggers() {
52         config_foreach register_trigger
53 }
54
55 start_service() {
56         config_load ucitrack
57 }