summaryrefslogtreecommitdiff
path: root/private_dot_local/bin/executable_menu-network
blob: b3a31a9e1184c74f3c0b378673fdacc6678f43ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

set -xe

wpa_cli scan

REFRESH="-- REFRESH --"

SELECTION=$REFRESH
while [ "$SELECTION" = "$REFRESH" ]; do
    NETWORKS=$(wpa_cli scan_results | awk 'NR > 2 { $1=$2=$3=$4=""; print $0 }' | sed 's/^[ \t]*//' | sort -u)
    SELECTION=$(echo "$REFRESH$NETWORKS" | menu -l 10 -p "Connect to:")
    [ -z "$SELECTION" ] && exit 0
done

ID=$(wpa_cli list_networks | grep "$SELECTION" | awk '{print $1}')

if [ -z "$ID" ]; then
    # New connection: Prompt for password
    PASS=$(echo -n | menu -Pp "Password:")

    ID=$(wpa_cli add_network | tail -n -1)
    wpa_cli set_network "$ID" ssid "\"$SELECTION\""
    
    if [ -z "$PASS" ]; then
        wpa_cli set_network "$ID" key_mgmt NONE
    else
        wpa_cli set_network "$ID" psk "\"$PASS\""
    fi
    wpa_cli save_config
fi

wpa_cli select_network "$ID"
wpa_cli enable_network "$ID"