diff options
author | Sylvain Pineau <sylvain.pineau@canonical.com> | 2015-06-02 10:22:55 +0200 |
---|---|---|
committer | Sylvain Pineau <sylvain.pineau@canonical.com> | 2015-06-02 10:22:55 +0200 |
commit | 11aa8b6cc0682a8579229057fab671acf41919e6 (patch) | |
tree | 4b2fa1994747774078f2a5ea507cbbf0169b0a48 /bin | |
parent | 3704ad65a63b02e904be94b7d36fdc5598f1110a (diff) |
providers:checkbox:bin:connect_wireless: Fix nmcli calls to comply with NM >= 0.9.10
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/connect_wireless | 37 |
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 |