diff --git a/attach-wifi.sh b/attach-wifi.sh deleted file mode 100644 index e252f64..0000000 --- a/attach-wifi.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -# Déplace la carte Wi-Fi de l'hôte dans le conteneur ap-wifi. -# Usage : sudo ./attach-wifi.sh (carte détectée automatiquement) -# ou : sudo ./attach-wifi.sh wlan0 (pour en imposer une) -# À relancer après chaque (re)démarrage du conteneur : la carte revient -# automatiquement sur l'hôte quand le conteneur s'arrête. -set -euo pipefail - -IFACE="${1:-${AP_INTERFACE:-}}" -CONTAINER="${CONTAINER:-ap-wifi}" - -[[ $EUID -eq 0 ]] || { echo "Lancez en root : sudo $0 wlan0"; exit 1; } -# Sans argument, reprendre AP_INTERFACE écrit dans le compose (lu depuis le conteneur) -[[ -n "$IFACE" ]] || IFACE="$(docker inspect -f '{{range .Config.Env}}{{println .}}{{end}}' "$CONTAINER" 2>/dev/null | sed -n 's/^AP_INTERFACE=//p')" - -if [[ -z "$IFACE" ]]; then - mapfile -t HOST_IFACES < <(iw dev 2>/dev/null | awk '$1=="Interface"{print $2}') - [[ ${#HOST_IFACES[@]} -gt 0 ]] || { echo "Aucune carte Wi-Fi détectée sur l'hôte (voir : iw dev)."; exit 1; } - IFACE="${HOST_IFACES[0]}" - for d in "${HOST_IFACES[@]}"; do - p="$(iw dev "$d" info 2>/dev/null | awk '/wiphy/{print "phy"$2}')" - if [[ -n "$p" ]] && iw "$p" info 2>/dev/null | grep -qE '^\s+\* AP$'; then IFACE="$d"; break; fi - done - echo "Carte détectée automatiquement : $IFACE" -fi - -PID="$(docker inspect -f '{{.State.Pid}}' "$CONTAINER" 2>/dev/null || echo 0)" -[[ "$PID" != "0" ]] || { echo "Le conteneur $CONTAINER n'est pas démarré."; exit 1; } - -PHY="$(iw dev "$IFACE" info 2>/dev/null | awk '/wiphy/{print "phy"$2}')" -[[ -n "$PHY" ]] || { echo "Interface $IFACE introuvable sur l'hôte (voir : iw dev)."; exit 1; } - -# L'hôte ne doit plus gérer la carte -nmcli device set "$IFACE" managed no 2>/dev/null || true - -iw phy "$PHY" set netns "$PID" -echo "Carte $IFACE ($PHY) injectée dans $CONTAINER. Suivez le démarrage : docker logs -f $CONTAINER"