summaryrefslogtreecommitdiffstats
path: root/bin/wifi
blob: 4253a30ce8f4d9d31e5acfda545ad2dd211b781f (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