#!/bin/bash

#This script ensures that we have a maximum of one 2.4GHz interface and one 5GHz interface configured due to the requirement of a manually specified uuid for future tasks

#This script requires a Debian derived distribution and the network-manager package

#Instructions:	wget http://congruent-networks.au/Jonathan-Ferguson/Quick-Quagga-802.11-Interfaces && chmod u+x ./Quick-Quagga-802.11-Interfaces && sudo ./Quick-Quagga-802.11-Interfaces

#########################################################################################
#                                                                                       #
#        Computer Program          ./Quick-Quagga-802.11-Interfaces                     #
#        Version        6          13 December, 2020                                    #
#        Author                    Jonathan Ferguson                                    #
#        Copyright Act 1968        https://www.comlaw.gov.au/Current/C2019C00042        #
#                                                                                       #
#########################################################################################

declare a_n_ac="unconfigured"
declare b_g_n="unconfigured"
declare interfaces=`nmcli device | grep wifi | grep disconnected | awk '{ print $1 }'`
for interface in $interfaces
do
	if [[ "`iwlist $interface channel 2> /dev/null | awk '$1 ~ /Channel/{ print $2 }' | grep 44`" == 44 && "$a_n_ac" == unconfigured ]]
	then
		sudo rm /etc/NetworkManager/system-connections/$interface 2> /dev/null || true
		sudo nmcli connection reload
		sudo touch /etc/NetworkManager/system-connections/$interface
		sudo chmod 600 /etc/NetworkManager/system-connections/$interface
		echo "[connection]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "id=$interface" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "uuid=00000000-0000-0000-0000-000000000001" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "type=wifi" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "[wifi]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "band=a" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "channel=44" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "mac-address=ff:ff:ff:ff:ff:ff" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "mac-address-randomization=1" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "mode=adhoc" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "seen-bssids=00:00:00:00:00:2c" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "ssid=Quick-Quagga 00:00:00:00:00:2c" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "[ipv4]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "method=disabled" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "[ipv6]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "addr-gen-mode=eui64" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "ip6-privacy=0" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "method=auto" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "never-default=true" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		sudo sed -i -r "s/mac-address=([0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2})/mac-address=`/sbin/ip link show $interface | awk '$1 ~ /link\/ether/ { print $2 }'`/" /etc/NetworkManager/system-connections/$interface
		echo "$interface is 5GHz capable"
		a_n_ac="configured"
	elif [[ "`iwlist $interface channel 2> /dev/null | awk '$1 ~ /Channel/{ print $2 }' | grep 08`" == 08 && "$b_g_n" == unconfigured ]]
	then
		sudo rm /etc/NetworkManager/system-connections/$interface 2> /dev/null || true
		sudo nmcli connection reload
		sudo touch /etc/NetworkManager/system-connections/$interface
		sudo chmod 600 /etc/NetworkManager/system-connections/$interface
		echo "[connection]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "id=$interface" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "uuid=00000000-0000-0000-0000-000000000002" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "type=wifi" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "[wifi]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "band=bg" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "channel=8" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "mac-address=ff:ff:ff:ff:ff:ff" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "mac-address-randomization=1" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "mode=adhoc" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "seen-bssids=00:00:00:00:00:08" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "ssid=Quick-Quagga 00:00:00:00:00:08" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "[ipv4]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "method=disabled" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "[ipv6]" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "addr-gen-mode=eui64" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "ip6-privacy=0" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "method=auto" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		echo "never-default=true" | sudo tee -a /etc/NetworkManager/system-connections/$interface 1> /dev/null
		sudo sed -i -r "s/mac-address=([0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2})/mac-address=`/sbin/ip link show $interface | awk '$1 ~ /link\/ether/ { print $2 }'`/" /etc/NetworkManager/system-connections/$interface
		echo "$interface is 2.4GHz capable"
		b_g_n="configured"
	fi
done
sudo nmcli connection reload
sed -i -e "3 i #This script was run on `hostname -s` on `date +%A,\ %e\ %B,\ %Y` at `date +%R\ %:z%n`\n" $0
sudo chmod u-x $0

#########################################################################################
#                                                                                       #
#        Computer Program          ./Quick-Quagga-802.11-Interfaces                     #
#        Version        6          13 December, 2020                                    #
#        Author                    Jonathan Ferguson                                    #
#        Copyright Act 1968        https://www.comlaw.gov.au/Current/C2019C00042        #
#                                                                                       #
#########################################################################################
