61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
"""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"
|