summaryrefslogtreecommitdiff
path: root/bin
diff options
authorSylvain Pineau <sylvain.pineau@canonical.com>2015-06-02 10:22:55 +0200
committerSylvain Pineau <sylvain.pineau@canonical.com>2015-06-02 10:22:55 +0200
commit11aa8b6cc0682a8579229057fab671acf41919e6 (patch)
tree4b2fa1994747774078f2a5ea507cbbf0169b0a48 /bin
parent3704ad65a63b02e904be94b7d36fdc5598f1110a (diff)
providers:checkbox:bin:connect_wireless: Fix nmcli calls to comply with NM >= 0.9.10
Diffstat (limited to 'bin')
-rwxr-xr-xbin/connect_wireless37
1 files changed, 28 insertions, 9 deletions
diff --git a/bin/connect_wireless b/bin/connect_wireless
index 54f61f7..c1ee36c 100755
--- a/bin/connect_wireless
+++ b/bin/connect_wireless
@@ -1,23 +1,42 @@
#!/bin/bash
+# Check nmcli version
+NMCLI_GTE_0_9_10=0
+nmcli general 2>&1 >/dev/null
+if [ $? -eq 0 ]; then
+ NMCLI_GTE_0_9_10=1
+fi
+
# Any active connections?
conn=''
-active_connection=$(nmcli -f SSID,ACTIVE dev wifi list | grep yes)
-
-if [ $? -eq 0 ]
-then
- ap=$(echo $active_connection | awk -F\' '{print $2}')
- conn=$(nmcli -t -f UUID,TYPE,NAME con list | grep wireless | grep -e "$ap$" | awk -F\: '{print $1}')
+if [ $NMCLI_GTE_0_9_10 -eq 0 ]; then
+ active_connection=$(nmcli -f SSID,ACTIVE dev wifi list | grep yes)
+ if [ $? -eq 0 ]; then
+ ap=$(echo $active_connection | awk -F\' '{print $2}')
+ conn=$(nmcli -t -f UUID,TYPE,NAME con list | grep wireless | grep -e "$ap$" | head -n 1 | awk -F\: '{print $1}')
+ else
+ conn=$(nmcli -t -f UUID,TYPE con list | grep wireless | head -n 1 | awk -F\: '{print $1}')
+ fi
else
- conn=$(nmcli -t -f UUID,TYPE con list | grep wireless | head -n 1 | awk -F\: '{print $1}')
+ active_connection=$(nmcli -f SSID,ACTIVE dev wifi | grep yes)
+ if [ $? -eq 0 ]; then
+ ap=$(echo $active_connection | awk '{print $1}')
+ conn=$(nmcli -t -f UUID,TYPE,NAME con show | grep wireless | grep -e "$ap$" | head -n 1 | awk -F\: '{print $1}')
+ else
+ conn=$(nmcli -t -f UUID,TYPE con show | grep wireless | head -n 1 | awk -F\: '{print $1}')
+ fi
fi
#Strip trailing/leading whitespace
conn=$(echo $conn |sed 's/^[ \t]*//;s/[ \t]*$//')
# Find out if wireless is enabled
-nmcli nm wifi | grep -q 'enabled'
+if [ $NMCLI_GTE_0_9_10 -eq 0 ]; then
+ nmcli nm wifi | grep -q 'enabled'
+else
+ nmcli radio wifi | grep -q 'enabled'
+fi
if [ $? -ne 0 ]
then
# Find out why
@@ -35,7 +54,7 @@ nmcli dev status | grep -q '\<connected\>'
if [ $? -eq 0 ]
then
# Disconnect, pause for a short time
- for iface in `nmcli -f GENERAL dev list | grep 'GENERAL.DEVICE' | awk '{print $2}'`
+ for iface in `(nmcli -f GENERAL dev list 2>/dev/null || nmcli -f GENERAL dev show) | grep 'GENERAL.DEVICE' | awk '{print $2}'`
do
nmcli dev disconnect iface $iface
done