diff options
Diffstat (limited to 'private_dot_local/bin/executable_menu-network')
| -rw-r--r-- | private_dot_local/bin/executable_menu-network | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/private_dot_local/bin/executable_menu-network b/private_dot_local/bin/executable_menu-network new file mode 100644 index 0000000..b3a31a9 --- /dev/null +++ b/private_dot_local/bin/executable_menu-network | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | set -xe | ||
| 4 | |||
| 5 | wpa_cli scan | ||
| 6 | |||
| 7 | REFRESH="-- REFRESH --" | ||
| 8 | |||
| 9 | SELECTION=$REFRESH | ||
| 10 | while [ "$SELECTION" = "$REFRESH" ]; do | ||
| 11 | NETWORKS=$(wpa_cli scan_results | awk 'NR > 2 { $1=$2=$3=$4=""; print $0 }' | sed 's/^[ \t]*//' | sort -u) | ||
| 12 | SELECTION=$(echo "$REFRESH$NETWORKS" | menu -l 10 -p "Connect to:") | ||
| 13 | [ -z "$SELECTION" ] && exit 0 | ||
| 14 | done | ||
| 15 | |||
| 16 | ID=$(wpa_cli list_networks | grep "$SELECTION" | awk '{print $1}') | ||
| 17 | |||
| 18 | if [ -z "$ID" ]; then | ||
| 19 | # New connection: Prompt for password | ||
| 20 | PASS=$(echo -n | menu -Pp "Password:") | ||
| 21 | |||
| 22 | ID=$(wpa_cli add_network | tail -n -1) | ||
| 23 | wpa_cli set_network "$ID" ssid "\"$SELECTION\"" | ||
| 24 | |||
| 25 | if [ -z "$PASS" ]; then | ||
| 26 | wpa_cli set_network "$ID" key_mgmt NONE | ||
| 27 | else | ||
| 28 | wpa_cli set_network "$ID" psk "\"$PASS\"" | ||
| 29 | fi | ||
| 30 | wpa_cli save_config | ||
| 31 | fi | ||
| 32 | |||
| 33 | wpa_cli select_network "$ID" | ||
| 34 | wpa_cli enable_network "$ID" | ||
