#!/bin/sh /etc/rc.common # Copyright (c) 2021 OpenWrt.org START=18 USE_PROCD=1 PROG=/usr/sbin/udevstats add_vlan() { local vid="$1" json_add_array json_add_int "" "$vid" [ "$rx" -gt 0 ] && json_add_string "" "rx" [ "$tx" -gt 0 ] && json_add_string "" "tx" json_close_array } add_device() { local cfg="$1" config_get_bool disabled "$cfg" disabled 0 [ "$disabled" -gt 0 ] && return config_get name "$cfg" name json_add_array "$name" config_get_bool rx "$cfg" rx 1 config_get_bool tx "$cfg" tx 1 config_list_foreach "$cfg" vlan add_vlan json_close_array } reload_service() { json_init config_load udevstats json_add_object devices config_foreach add_device device json_close_object ubus call udevstats config_set "$(json_dump)" } service_triggers() { procd_add_reload_trigger udevstats } start_service() { procd_open_instance procd_set_param command "$PROG" procd_set_param respawn procd_close_instance } service_started() { ubus -t 10 wait_for udevstats [ $? = 0 ] && reload_service }