dotfiles/.config/wireless/wireless-iwctl.sh
2022-03-13 16:23:10 +01:00

121 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
############################
# CONNECTION CONFIGURATION #
############################
interface="wlan0"
wireless="yes" # Change to "no" for ethernet
wireless_ssid="tp-link_6789"
wireless_pass="mywirelesspassword"
ip_interface="192.168.0.100/24"
gw_interface="192.168.0.1"
dns_one="1.1.1.1"
dns_two="1.1.0.0"
#############################
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
if [ "$color_prompt" = yes ]; then
blue='\e[1;34m'
red='\e[1;31m'
yellow='\e[1;33m'
purple='\e[35m'
green='\e[32m'
end='\e[0m'
else
blue='' # Disable blue color
red='' # Disable red color
yellow='' # Disable yellow color
purple='' # Disable purple color
green='' # Disable green color
end='' # Disable color
fi
# CHECK ROOT PERMISSIONS
mkdir -p /etc/root &> /dev/null
administrator=$?
if [ ${administrator} -eq 0 ] ; then
rm -rf /etc/root
else
echo -e ""
echo -e "${blue} # wireless-iwctl${end}"
echo -e "${purple} ################${end}"
echo -e ""
echo -e "${red} # Administrator permissions are required!${end}"
echo -e ""
exit
fi
# INITIALIZE CONFIGURATION
echo -e ""
echo -e "${blue} # wireless-iwctl${end}"
echo -e "${purple} ################${end}"
echo -e ""
# CHECK WID PROCESS
check_iwd=$(ps -e | grep " iwd")
if [ -z "${check_iwd}" ] ; then
echo -e "${purple} # Running iwd process${end}"
systemctl start iwd
sleep 2
fi
# CONFIGURE WIFI CONNECTTION
if [ "${wireless}" == "yes" ] ; then
echo -e "${blue} # Connecting ${interface} to SSID ${wireless_ssid}${end}"
sleep 1
iwctl --passphrase ${wireless_pass} station ${interface} connect ${wireless_ssid} 2> /dev/null
connect_error="$?"
if [ ${connect_error} == 0 ] ; then
echo -e "${green} # Connected to ${wireless_ssid}${end}"
else
echo -e "${red} # Failed to connect ${wireless_ssid}${end}"
fi
fi
# CONFIGURE IP ADDRESS
echo -e "${purple} # Configuring IP address for ${interface}${end}"
sleep 1
ip addr add ${ip_interface} dev ${interface} 2> /dev/null
connect_error="$?"
if [ ${connect_error} == 0 ] ; then
echo -e "${green} # Configured IP ${ip_interface} for ${interface}${end}"
else
echo -e "${red} # Failed to configure IP ${ip_interface} for ${interface}${end}"
fi
echo -e "${purple} # Configuring gateway for ${interface}${end}"
sleep 1
ip route add default via ${gw_interface} 2> /dev/null
connect_error="$?"
if [ ${connect_error} == 0 ] ; then
echo -e "${green} # Configured gateway ${gw_interface} for ${interface}${end}"
else
echo -e "${red} # Failed to configure gateway ${gw_interface} for ${interface}${end}"
fi
echo -e "${purple} # Setting UP interface ${interface}${end}"
sleep 1
ip link set ${interface} up 2> /dev/null
connect_error="$?"
if [ ${connect_error} == 0 ] ; then
echo -e "${green} # The interface ${interface} is now UP${end}"
else
echo -e "${red} # The interface ${interface} is now DOWN${end}"
fi
# CONFIGURAR LOS DNS
echo -e "${yellow} # Configuring DNS servers${end}"
echo "nameserver ${dns_one}" > /etc/resolv.conf 2> /dev/null
error_dns="$?"
echo "nameserver ${dns_two}" >> /etc/resolv.conf 2> /dev/null
error_dns_sec="$?"
connect_error=$(expr ${error_dns} + ${error_dns_sec})
if [ ${connect_error} == 0 ] ; then
echo -e "${green} # Configured primary DNS ${dns_one}${end}"
echo -e "${green} # Configured secondary DNS ${dns_two}${end}"
else
echo -e "${red} # Failed to configure DNS servers${end}"
fi