Refactor settings loading to use auto-detection and improve error handling
This commit is contained in:
parent
0e49e636ce
commit
f360ae79e8
1 changed files with 19 additions and 7 deletions
26
listener.py
26
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 ===
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue