#!/bin/sh
#251016 sfs
#Если есть активный интерфейс, подключенный к сети - iwd-wlan не запускаем
grep up /sys/class/net/*/operstate && 
    echo "Wired connection is active. Not starting iwd-wlan.service." && exit 1
#Если ли wifi интерфейсы - iwd запускаем
! ls /sys/class/net/* |grep -E '^phy80211$' && 
    echo "Wi-Fi interface not found. Not starting iwd-wlan.service." && exit 1 ||
    echo "Wi-Fi interface found. Starting iwd-wlan.service."
exit

# Определяем имя Wi-Fi интерфейса
#WIFI_INTERFACE=$(iwconfig 2>/dev/null | awk '/ESSID:/ {print $1}')
#get_wifi_interface() {
    for iface_path in /sys/class/net/*; do
        iface_name=$(basename "$iface_path")
        if [ -e "$iface_path/phy80211" ]; then
            printf '%s\n' "$iface_name"
#            return 0
        fi
    done
#    return 1
    
#}
exit

WIFI_INTERFACE=$(get_wifi_interface)
if [ -z "$WIFI_INTERFACE" ]; then
    echo "Wi-Fi interface not found"
    exit 1
else
    # Проверяем наличие активного проводного соединения
    if ip link show | grep -v "${WIFI_INTERFACE}:" | grep -q "state UP"; then
        echo "Wired connection is active. Stopping iwd.service."
#        systemctl stop iwd.service
        exit 1
    fi

    # Поднимаем Wi-Fi интерфейс
#    ifconfig $WIFI_INTERFACE up
fi
exit


#!/bin/sh

has_active_ethernet() {
    for iface_path in /sys/class/net/*; do
        iface=$(basename "$iface_path")

        # Пропускаем loopback и беспроводные
        case "$iface" in
            lo|wl*|ra*|wlan*|wifi*|p2p*) continue ;;
        esac

        # Проверяем, что это Ethernet (не беспроводной)
        if [ -e "$iface_path/phy80211" ]; then
            continue  # это Wi-Fi — пропускаем
        fi

        # Проверяем, поднят ли интерфейс и есть ли carrier (линк)
        if [ -f "$iface_path/operstate" ] && [ -f "$iface_path/carrier" ]; then
            operstate=$(cat "$iface_path/operstate" 2>/dev/null || echo "down")
            carrier=$(cat "$iface_path/carrier" 2>/dev/null || echo "0")

            # operstate может быть "up", "down", "dormant", "lowerlayerdown" и т.д.
            # carrier=1 означает, что кабель подключён и линк есть
            if [ "$carrier" = "1" ]; then
                printf '%s\n' "$iface"
                return 0
            fi
        fi
    done
    return 1
}

eth_iface=$(has_active_ethernet)

if [ -n "$eth_iface" ]; then
    echo "Проводной интерфейс подключён: $eth_iface"
else
    echo "Нет активного проводного подключения"
fi
