scripts-github-mirror/net/wireless/wireless.sh

50 lines
1.3 KiB
Bash

#!/bin/bash
# dependencies: wireless-tools
DIR=$(dirname $0)
source "$DIR/wireless.conf"
WIFI=$(uci get wireless.@wifi-iface[0].ssid)
echo "$(date) current wifi: $WIFI"
if [ $(iw dev wlan0 scan|grep "$WIFI"|wc -l) -eq 0 ];then
uci set wireless.@wifi-iface[0].disabled=1
uci commit
/etc/init.d/network restart
sleep 15
fi
for wifi in "${essids[@]}" ; do
ESSID="${wifi%%:*}"
PASS="${wifi##*:}"
echo "$(date) checking: $ESSID ..."
#echo "$PASS"
if [ $(iw dev wlan0 scan|grep "$ESSID"|wc -l) -ne 0 ];then
echo "$(date) wifi: $ESSID is detected."
if [ "$WIFI" != "$ESSID" ]; then
uci set wireless.@wifi-device[0].channel="auto"
uci set wireless.@wifi-iface[0].ssid="$ESSID"
uci set wireless.@wifi-iface[0].key="$PASS"
uci delete wireless.@wifi-iface[0].bssid
uci set wireless.@wifi-iface[0].disabled=0
if [ -z "$PASS" ]; then
uci set wireless.@wifi-iface[0].encryption="none"
uci delete wireless.@wifi-iface[0].key
else
uci set wireless.@wifi-iface[0].encryption="psk-mixed"
fi
uci commit
/etc/init.d/network restart
echo "$(date) wifi: $ESSID is updated."
fi
break
fi
done