From 97e3b7108a691a08cebb7f33b78c60d1ed6912cf Mon Sep 17 00:00:00 2001 From: tianyu Date: Tue, 6 Dec 2016 08:18:29 -0600 Subject: [PATCH] Create wireless.sh --- net/wireless/wireless.sh | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 net/wireless/wireless.sh diff --git a/net/wireless/wireless.sh b/net/wireless/wireless.sh new file mode 100644 index 0000000..b06cddf --- /dev/null +++ b/net/wireless/wireless.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# dependencies: bash wireless-tools + +DIR=$(dirname $0) + +source "$DIR/wireless.conf" + +WIFI=$(uci get wireless.@wifi-iface[0].ssid) + +echo "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 "checking: $ESSID ..." + #echo "$PASS" + + if [ $(iw dev wlan0 scan|grep "$ESSID"|wc -l) -ne 0 ];then + echo "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 + fi + + break + fi +done