43 lines
810 B
Bash
Executable file
43 lines
810 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
ethernet() {
|
|
name="Wired"
|
|
image="ethernet"
|
|
}
|
|
|
|
wifi() {
|
|
wifiInfo=$(nmcli -t -f active,ssid,signal device wifi list)
|
|
|
|
signalStrength=$(awk -F: '/yes:/ {print $3}' <<< $wifiInfo)
|
|
name=$(awk -F: '/yes:/ {print $2}' <<< $wifiInfo)
|
|
|
|
if [[ $signalStrength -ge 70 ]]; then
|
|
image="wifiHigh"
|
|
elif [[ $signalStrength -ge 60 ]]; then
|
|
image="wifiMedium"
|
|
elif [[ $signalStrength -ge 40 ]]; then
|
|
image="wifiLow"
|
|
else
|
|
image="wifiVeryLow"
|
|
fi
|
|
}
|
|
|
|
while true; do
|
|
name="No Connection"
|
|
image="n.A."
|
|
|
|
networkInfo=$(nmcli -f NAME,TYPE connection show --active | awk '!/loopback/ && NR > 1')
|
|
|
|
if [[ $(awk '/wifi/' <<< "$networkInfo") ]]; then
|
|
wifi
|
|
fi
|
|
|
|
if [[ $(awk '/ethernet/' <<< "$networkInfo") ]]; then
|
|
ethernet
|
|
fi
|
|
|
|
|
|
echo '{"name":"'"$name"'","image":"'"$image"'"}'
|
|
|
|
sleep 2
|
|
done
|