summaryrefslogtreecommitdiffstats
path: root/bin/hush/wifi
blob: 38c70ee4eba7cd6abfa617870c9ad296948c3226 (plain) (blame)
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
35
36
37
38
#!/bin/sh
set -eu
set -o pipefail

DEV=wlp3s0
OPEN=open

if [ -z "${1:-}" ]; then
    if sudo netctl status $OPEN > /dev/null 2>&1; then
        sudo netctl restart $OPEN
    else
        sudo systemctl restart netctl-auto@$DEV
    fi
else
    case "$1" in
        open)
            if [ -n "${2:-}" ]; then
                sudo sed -i "s/^ESSID=.*/ESSID='${2}'/" "/etc/netctl/${OPEN}"
            fi

            if sudo netctl status $OPEN > /dev/null 2>&1; then
                sudo netctl restart $OPEN
            else
                sudo systemctl stop netctl-auto@$DEV
                sudo netctl start $OPEN
            fi
            ;;
        wpa)
            if ! sudo systemctl status netctl-auto@$DEV > /dev/null 2>&1; then
                sudo netctl stop $OPEN
                sudo systemctl start netctl-auto@$DEV
            fi
            ;;
        scan)
            sudo iw dev $DEV scan | grep SSID | perl -nle 's/^.*SSID: //; print unless $seen{$_}++'
            ;;
    esac
fi