"""Client configuration.""" import os import sys from pathlib import Path # Application info APP_NAME = "mGuard VPN Client" APP_VERSION = "1.0.0" # Default server settings DEFAULT_SERVER_URL = "http://localhost:8000" # OpenVPN binary search paths by platform OPENVPN_PATHS_WINDOWS = [ r"C:\Program Files\OpenVPN\bin\openvpn.exe", r"C:\Program Files (x86)\OpenVPN\bin\openvpn.exe", r"C:\Program Files\OpenVPN Connect\ovpnconnector.exe", ] OPENVPN_PATHS_LINUX = [ "/usr/sbin/openvpn", "/usr/bin/openvpn", "/usr/local/sbin/openvpn", "/usr/local/bin/openvpn", "/opt/openvpn/sbin/openvpn", "/snap/bin/openvpn", ] OPENVPN_PATHS_MACOS = [ "/usr/local/sbin/openvpn", "/usr/local/bin/openvpn", "/opt/homebrew/bin/openvpn", "/opt/homebrew/sbin/openvpn", "/usr/local/opt/openvpn/sbin/openvpn", ] # Determine platform if os.name == 'nt': # Windows OPENVPN_SEARCH_PATHS = OPENVPN_PATHS_WINDOWS OPENVPN_CONFIG_DIR = Path.home() / "OpenVPN" / "config" elif sys.platform == 'darwin': # macOS OPENVPN_SEARCH_PATHS = OPENVPN_PATHS_MACOS OPENVPN_CONFIG_DIR = Path.home() / ".openvpn" else: # Linux OPENVPN_SEARCH_PATHS = OPENVPN_PATHS_LINUX OPENVPN_CONFIG_DIR = Path.home() / ".openvpn" # Legacy variable for compatibility OPENVPN_EXE = OPENVPN_SEARCH_PATHS[0] if OPENVPN_SEARCH_PATHS else "openvpn" # Ensure config directory exists OPENVPN_CONFIG_DIR.mkdir(parents=True, exist_ok=True) # Local storage APP_DATA_DIR = Path.home() / ".mguard-vpn" APP_DATA_DIR.mkdir(parents=True, exist_ok=True) # Settings file SETTINGS_FILE = APP_DATA_DIR / "settings.json"