#!/bin/sh

mwan3_led_trigger() {
        local INTERFACE="$1"
        local ACTION="$2"

        # LED state function
        set_led() {
                local led_name="$1"
                local value="$2"
                local led_path="/sys/class/leds/${led_name}/brightness"

                # Set state LED
                echo "$value" > "$led_path" 2>/dev/null
        }

        # Get config values
        handle_led_config() {
                local iface led_on led_off

                config_get iface "$1" iface
                config_get led_on "$1" led_on
                config_get led_off "$1" led_off

                # Check interface
                [ "$iface" != "$INTERFACE" ] && return

                case "$ACTION" in
                        connected)
                                # Selected LED led_on
                                set_led "$led_on" 255
                                # if defined led_off
                                [ -n "$led_off" ] && set_led "$led_off" 0
                        ;;
                        disconnected)
	                        if [ -n "$led_off" ]; then
        	                        # if defined led_off
                	                set_led "$led_off" 255
	                        fi
        	                # Off flashing LED led_on
                	        set_led "$led_on" 0
                        ;;
			ifdown)
				set_led "$led_on" 0
				if [ -n "$led_off" ]; then
					set_led "$led_off" 0
				fi
			;;
                esac
        }

        # get config
        config_load mwan3_led
        config_foreach handle_led_config led
}

[ -f "/etc/config/mwan3_led" ] && {
	. /lib/functions.sh
	. /lib/mwan3/mwan3.sh
	initscript=/etc/init.d/mwan3
	. /lib/functions/procd.sh

	[ "$MWAN3_SHUTDOWN" != 1 ] && procd_lock

	[ "$MWAN3_SHUTDOWN" != 1 ] && ! /etc/init.d/mwan3 running && {
		exit 0
	}

	config_load mwan3

	config_get_bool enabled "$INTERFACE" enabled 0
	[ "${enabled}" -eq 1 ] || {
		exit 0
	}
	mwan3_led_trigger $INTERFACE $ACTION
}

exit 0
