extra-scripts/hotspot
2021-11-28 18:29:51 +01:00

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