diff --git a/listener.py b/listener.py index 718b6c5..9b47bda 100755 --- a/listener.py +++ b/listener.py @@ -1,19 +1,31 @@ -#!/usr/bin/env python3 import os import signal import time from collections import defaultdict from scapy.all import sniff, Dot11, RadioTap -from dotenv import dotenv_values +from dotenv import load_dotenv +from pathlib import Path -settings_path = os.path.expanduser("~/wifi_test/settings.env") -config = dotenv_values(settings_path) +# --- Settings.env auto-detection logic --- +SCRIPT_DIRECTORY = Path(__file__).resolve().parent -if not config: - print(f"[!] Failed to load settings from {settings_path}") +# Try intelligent guess of real user home even under sudo +SUDO_USER = os.environ.get("SUDO_USER") +USER_HOME = Path(f"/home/{SUDO_USER}") if SUDO_USER else Path.home() +ENV_PATH = USER_HOME / "wifi_test" / "settings.env" + +# Fallback if all else fails +if not ENV_PATH.exists(): + ENV_PATH = Path("/home/yaro/wifi_test/settings.env") + +if not ENV_PATH.exists(): + print(f"[!] Failed to load settings from {ENV_PATH}") exit(1) -LISTEN_INTERFACE = config.get("LISTEN_INTERFACE", "wlan0") +load_dotenv(dotenv_path=ENV_PATH) + +# Now load settings +LISTEN_INTERFACE = os.getenv("LISTEN_INTERFACE", "wlan0") print(f"[+] Using LISTEN_INTERFACE = {LISTEN_INTERFACE}") # === Globals ===