2022-12-14 21:21:08 +08:00

46 lines
1.2 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=99
STOP=01
USE_PROCD=1
service_triggers() {
procd_add_reload_trigger "airconnect"
}
main_config() {
config_get AIRUPNP_IFACE "$1" interface "lan"
config_get_bool ENABLE_MAIN "$1" enabled 0
config_get_bool ENABLE_AIRCAST "$1" aircast 0
config_get_bool ENABLE_AIRUPNP "$1" airupnp 0
}
start_service() {
config_load airconnect
config_foreach main_config main
[ "$ENABLE_MAIN" = 0 ] && return 0
[ "$ENABLE_AIRCAST" = 0 -a "$ENABLE_AIRUPNP" = 0 ] && return 0
local interface=$(
. /lib/functions/network.sh
network_is_up "$AIRUPNP_IFACE" || exit 0
network_get_device device "$AIRUPNP_IFACE"
printf "%s" "${device:-$AIRUPNP_IFACE}"
)
[ -z "$interface" ] && interface=br-lan
local common_args="-Z -b $interface"
if [ "$ENABLE_AIRUPNP" = 1 ]; then
procd_open_instance
procd_set_param command /usr/bin/airupnp $common_args
procd_set_param respawn
procd_close_instance
fi
if [ "$ENABLE_AIRCAST" = 1 ]; then
procd_open_instance
procd_set_param command /usr/bin/aircast $common_args
procd_set_param respawn
procd_close_instance
fi
}