mirror of https://gitlab.com/hp3icc/emq-TE1.git
153 lines
5.1 KiB
Bash
153 lines
5.1 KiB
Bash
#!/bin/bash
|
|
if [ "$(cat /proc/cpuinfo | grep 'Raspberry')" != "" ]; then
|
|
#menu-wifi
|
|
sudo cat > /bin/menu-wifi-manager <<- "EOF"
|
|
#!/bin/bash
|
|
if [ "$(cat /proc/cpuinfo | grep 'Raspberry')" != "" ]; then
|
|
while :
|
|
do
|
|
choix=$(whiptail --title "WiFi Mannager" --menu "Selecciona una opción:" 15 60 8 \
|
|
1 "Mostrar redes Wi-Fi cercanas" \
|
|
2 "Mostrar redes Wi-Fi almacenadas" \
|
|
3 "Agregar nueva red Wi-Fi" \
|
|
4 "Editar red Wi-Fi existente" \
|
|
5 "Borrar red Wi-Fi" \
|
|
6 "WiFi Signal Meter (wavemon)" \
|
|
7 "IP Tools Manager" \
|
|
8 "Salir" 3>&1 1>&2 2>&3)
|
|
|
|
exitstatus=$?
|
|
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Opción seleccionada:" $choix
|
|
else
|
|
echo "Has elegido cancelar. Saliendo..."
|
|
break
|
|
fi
|
|
|
|
case $choix in
|
|
1)
|
|
echo "Scan redes WiFi:"
|
|
wifi_scan=$(sudo iwlist wlan0 scan | grep ESSID | grep -oP '"\K[^"]+')
|
|
formatted_wifi_scan=$(echo "$wifi_scan" | sed 's/"//g')
|
|
whiptail --title "Scan Redes WiFi Cercanas" --msgbox "$formatted_wifi_scan" 15 60
|
|
;;
|
|
2)
|
|
echo "Mostrando redes WiFi almacenadas:"
|
|
wifi_list=$(nmcli connection show | awk '$3 == "wifi" {print $1}' | nl -s " ")
|
|
whiptail --title "Redes WiFi Almacenadas" --msgbox "$wifi_list" 15 60
|
|
;;
|
|
3)
|
|
ssid=""
|
|
password=""
|
|
whiptail --title "Agregar nueva red WiFi" --inputbox "Ingresa el SSID de la nueva red WiFi:" 10 60 2>/tmp/ssid.txt
|
|
ssid=$(cat /tmp/ssid.txt)
|
|
whiptail --title "Agregar nueva red WiFi" --inputbox "Ingresa la contraseña de la nueva red WiFi:" 10 60 2>/tmp/password.txt
|
|
password=$(cat /tmp/password.txt)
|
|
|
|
# Agregar la nueva red WiFi utilizando los comandos específicos
|
|
nmcli connection add type wifi ifname wlan0 con-name $ssid ssid "$ssid"
|
|
nmcli connection modify $ssid wifi-sec.key-mgmt wpa-psk
|
|
nmcli connection modify $ssid wifi-sec.psk "$password"
|
|
nmcli connection modify $ssid connection.autoconnect yes
|
|
sudo systemctl restart NetworkManager
|
|
|
|
rm -f /tmp/ssid.txt /tmp/password.txt
|
|
|
|
echo "Nueva red WiFi agregada con éxito y habilitada en wlan0."
|
|
# read -p "Presiona Enter para continuar..."
|
|
;;
|
|
4)
|
|
wifi_list=$(nmcli connection show | awk '$3 == "wifi" {print $1}' | nl -s " ")
|
|
choice_num=""
|
|
|
|
while [ -z "$choice_num" ]; do
|
|
choice_num=$(whiptail --title "Redes WiFi Almacenadas" --menu "Selecciona una red WiFi para borrar:" 15 60 6 $wifi_list 3>&1 1>&2 2>&3)
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "Has elegido cancelar. Saliendo..."
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [[ $choice_num =~ ^[0-9]+$ ]]; then
|
|
ssid_to_edit=$(nmcli connection show | awk '$3 == "wifi" {print $1}' | sed -n "${choice_num}p")
|
|
|
|
if [ -n "$ssid_to_edit" ]; then
|
|
# Solicitar la nueva contraseña
|
|
whiptail --title "Editar red WiFi" --inputbox "Ingresa la nueva contraseña para '$ssid_to_edit':" 10 60 2>/tmp/new_password.txt
|
|
new_password=$(cat /tmp/new_password.txt)
|
|
|
|
# Cambiar la contraseña de la red WiFi utilizando nmcli
|
|
nmcli connection modify $ssid_to_edit wifi-sec.psk "$new_password"
|
|
sudo systemctl restart NetworkManager
|
|
|
|
rm -f /tmp/new_password.txt
|
|
|
|
echo "Contraseña de la red WiFi '$ssid_to_edit' actualizada con éxito."
|
|
else
|
|
echo "Número de red WiFi no válido."
|
|
fi
|
|
else
|
|
echo "Número de red WiFi no válido."
|
|
fi
|
|
|
|
# read -p "Presiona Enter para continuar..."
|
|
;;
|
|
5)
|
|
wifi_list=$(nmcli connection show | awk '$3 == "wifi" {print $1}' | nl -s " ")
|
|
choice_num=""
|
|
|
|
while [ -z "$choice_num" ]; do
|
|
choice_num=$(whiptail --title "Redes WiFi Almacenadas" --menu "Selecciona una red WiFi para borrar:" 15 60 6 $wifi_list 3>&1 1>&2 2>&3)
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "Has elegido cancelar. Saliendo..."
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [[ $choice_num =~ ^[0-9]+$ ]]; then
|
|
ssid_to_delete=$(nmcli connection show | awk '$3 == "wifi" {print $1}' | sed -n "${choice_num}p")
|
|
|
|
if [ -n "$ssid_to_delete" ]; then
|
|
# Confirmar la eliminación de la red WiFi
|
|
whiptail --title "Borrar red WiFi" --yesno "¿Estás seguro de que deseas borrar la red WiFi '$ssid_to_delete'?" 10 60
|
|
|
|
if [ $? -eq 0 ]; then
|
|
# Eliminar la red WiFi utilizando nmcli
|
|
nmcli connection delete "$ssid_to_delete"
|
|
echo "Red WiFi '$ssid_to_delete' eliminada con éxito."
|
|
else
|
|
echo "No se ha eliminado ninguna red WiFi."
|
|
fi
|
|
else
|
|
echo "Número de red WiFi no válido."
|
|
fi
|
|
else
|
|
echo "Número de red WiFi no válido."
|
|
fi
|
|
|
|
# read -p "Presiona Enter para continuar..."
|
|
;;
|
|
6)
|
|
sudo wavemon ;;
|
|
7)
|
|
menu-ip ;;
|
|
8)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
exit 0
|
|
else
|
|
whiptail --title "WiFi Mannager" --msgbox "Esta opcion solo esta disponible para Raspberry / This option is only available for Raspberry" 0 50
|
|
exit 0
|
|
fi
|
|
EOF
|
|
#
|
|
chmod +x /bin/menu-wifi-manager
|
|
ln -sf /bin/menu-wifi-manager /bin/MENU-WIFI-MANAGER
|
|
chmod +x /bin/MENU*
|
|
fi |