diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..db61b1b --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +1.0.0 alpha 2 diff --git a/wifi_fix.sh b/wifi_fix.sh new file mode 100644 index 0000000..403d7b0 --- /dev/null +++ b/wifi_fix.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# Author : Infinition + +# Log file +LOG_FILE="/var/log/wifi-manager.log" + +# Array to track failed operations +declare -a failed_apt_packages + +# Logging function +log() { + local level="$1" + local message="$2" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $message" >> "$LOG_FILE" +} + +manage_wifi_connections() { + log "INFO" "Managing Wi-Fi connections..." + + PRECONFIG_FILE="/etc/NetworkManager/system-connections/preconfigured.nmconnection" + + if [ -f "$PRECONFIG_FILE" ]; then + log "INFO" "Extracting data from preconfigured Wi-Fi connection..." + + # Extract SSID + SSID=$(grep '^ssid=' "$PRECONFIG_FILE" | cut -d'=' -f2) + + # Extract PSK + PSK=$(grep '^psk=' "$PRECONFIG_FILE" | cut -d'=' -f2) + + if [ -z "$SSID" ]; then + log "ERROR" "SSID not found in preconfigured file." + echo -e "${RED}SSID not found in preconfigured Wi-Fi file. Check the log for details.${NC}" + failed_apt_packages+=("SSID extraction from preconfigured Wi-Fi") + return 1 + fi + + # Create a new connection named after the SSID with priority 5 + log "INFO" "Creating new Wi-Fi connection for SSID: $SSID with priority 5" + if nmcli connection add type wifi ifname wlan0 con-name "$SSID" ssid "$SSID" \ + wifi-sec.key-mgmt wpa-psk wifi-sec.psk "$PSK" connection.autoconnect yes \ + connection.autoconnect-priority 5 >> "$LOG_FILE" 2>&1; then + log "SUCCESS" "Created new Wi-Fi connection for SSID: $SSID" + else + log "ERROR" "Failed to create Wi-Fi connection for SSID: $SSID" + echo -e "${RED}Failed to create Wi-Fi connection for SSID: $SSID. Check the log for details.${NC}" + failed_apt_packages+=("Wi-Fi connection for SSID: $SSID") + fi + + # Remove preconfigured file only after successful creation of new connections + rm "$PRECONFIG_FILE" + if [ $? -eq 0 ]; then + log "SUCCESS" "Removed preconfigured Wi-Fi connection file." + else + log "WARNING" "Failed to remove preconfigured Wi-Fi connection file." + fi + else + log "WARNING" "No preconfigured Wi-Fi connection file found." + fi +} + +# Main execution +manage_wifi_connections \ No newline at end of file