#!/usr/bin/env bash # Read WiFi status ssid="" ip="" if command -v nmcli &>/dev/null; then active_line=$(nmcli -t -f active,ssid,signal dev wifi 2>/dev/null | grep '^yes' | head -n 1) if [ -n "$active_line" ]; then ssid=$(echo "$active_line" | cut -d':' -f2) signal=$(echo "$active_line" | cut -d':' -f3) fi fi if [ -z "$ssid" ]; then # Fallback to iwgetid or /proc/net/wireless if command -v iwgetid &>/dev/null; then ssid=$(iwgetid -r 2>/dev/null) fi fi # Get default IPv4 ip=$(ip -4 route get 1.1.1.1 2>/dev/null | awk '{print $7; exit}') if [ -n "$ssid" ]; then echo "{\"connected\": true, \"ssid\": \"$ssid\", \"ip\": \"${ip:-N/A}\"}" elif [ -n "$ip" ]; then echo "{\"connected\": true, \"ssid\": \"Ethernet\", \"ip\": \"$ip\"}" else echo "{\"connected\": false, \"ssid\": \"Not Connected\", \"ip\": \"None\"}" fi