69 lines
1.6 KiB
Bash
Executable File
69 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Change this to 0 if you don't want your Wifi turned off when turning off the hotspot
|
|
turn_off_wifi=1
|
|
|
|
hotspot=Hotspot
|
|
if [ "$1" = "random" ]; then
|
|
hotspot=RandomHotspot
|
|
declare -i pwbits=256
|
|
if [ -n "$2" ]; then
|
|
pwbits=$2
|
|
fi
|
|
elif [ "$1" = "off" ]; then
|
|
if [ -n "$(nmcli -g GENERAL.STATE c s Hotspot)" ]; then
|
|
nmcli c do Hotspot
|
|
elif [ -n "$(nmcli -g GENERAL.STATE c s RandomHotspot)" ]; then
|
|
nmcli c do RandomHotspot
|
|
fi
|
|
exit
|
|
elif [ "$1" = "show" ]; then
|
|
nmcli d w s
|
|
exit
|
|
fi
|
|
|
|
random_hotspot_on() {
|
|
nmcli -p d w ho con-name RandomHotspot ssid "We never met, ok?" password $(pwmake $pwbits)
|
|
nmcli c mod RandomHotspot 802-11-wireless.hidden true
|
|
nmcli d w s
|
|
}
|
|
|
|
hotspot_on() {
|
|
nmcli -p d w ho
|
|
nmcli d w s
|
|
}
|
|
|
|
# Wifi on?
|
|
if nmcli r wi | grep enabled -q; then
|
|
# yes
|
|
|
|
# hotspot on?
|
|
if [[ -n "$(nmcli -g GENERAL.STATE c s $hotspot)" && "$hotspot" != "RandomHotspot" ]]; then
|
|
echo Turning off Wifi and hotspot
|
|
# yes, turn off hotspot (and Wifi)
|
|
if [ $turn_off_wifi -eq 0 ]; then
|
|
nmcli c do $hotspot
|
|
else
|
|
nmcli r wi off
|
|
fi
|
|
else
|
|
echo Turning on hotspot
|
|
# no, turn on hotspot
|
|
if [ "$hotspot" = "RandomHotspot" ]; then
|
|
random_hotspot_on
|
|
else
|
|
hotspot_on
|
|
fi
|
|
fi
|
|
else
|
|
echo Turning on Wifi and hotspot
|
|
# no
|
|
nmcli r wi on
|
|
# hotspot neither
|
|
if [ "$hotspot" = "RandomHotspot" ]; then
|
|
random_hotspot_on
|
|
else
|
|
hotspot_on
|
|
fi
|
|
fi
|