#!/bin/sh
# bashclub OS: WLAN-Unterstützung nachinstallieren (bashclub-base)
set -eu
root=${BASHCLUB_ROOT:-}
firmware() { # Kernelmodul → Firmware-Paket
	case "$1" in
	iwlwifi) echo firmware-iwlwifi ;;
	rtw88_*|rtw89_*|rtl8xxxu|rtl8188*|rtl8192*|rtl8723*|rtl8821*|rtl8822*|r8188eu) echo firmware-realtek ;;
	ath9k*|ath10k*|ath11k*|ath12k*|carl9170) echo firmware-atheros ;;
	brcmfmac*|brcmsmac) echo firmware-brcm80211 ;;
	mt76*|mt79*) echo firmware-mediatek ;;
	esac
}
# Module der vorhandenen Hardware (PCI, USB), auch ohne geladenen Treiber
modules=$(cat "$root"/sys/bus/pci/devices/*/modalias "$root"/sys/bus/usb/devices/*/modalias 2>/dev/null |
	xargs -r -n1 modprobe -q --resolve-alias 2>/dev/null | sort -u)
wifi=""
for dev in "$root"/sys/class/net/*; do
	if [ -e "$dev/wireless" ] || [ -e "$dev/phy80211" ]; then wifi=yes; fi
done
packages=""
for m in $modules; do
	p=$(firmware "$m")
	if [ -n "$p" ]; then
		wifi=yes
		packages="$packages $p"
	fi
done
if [ -z "$wifi" ]; then
	[ "${1:-}" = --detect ] || echo 'Nessun hardware Wi-Fi rilevato.'
	exit 1
fi
[ "${1:-}" = --detect ] && exit 0
if [ "$(id -u)" != 0 ]; then
	echo 'Eseguire con sudo.' >&2
	exit 1
fi
# shellcheck disable=SC2086
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wpasupplicant wireless-regdb iw $packages
for m in $modules; do
	if [ -n "$(firmware "$m")" ]; then modprobe -r "$m" 2>/dev/null || true; modprobe "$m" || true; fi
done
systemctl restart NetworkManager
echo 'Supporto Wi-Fi installato. Connessione: sudo nmtui o nmcli device wifi connect <SSID> --ask'
