package main import ( "fmt" "os" "vpn-client/internal/admin" "vpn-client/internal/cli" "vpn-client/internal/config" "vpn-client/internal/downloader" ) func main() { // Проверка прав администратора admin.RequireAdmin() // Инициализация конфигурации if err := config.Init(); err != nil { fmt.Fprintf(os.Stderr, "Ошибка инициализации: %v\n", err) os.Exit(1) } // Проверка и загрузка Xray и V2Ray fmt.Println("Проверка наличия Xray и V2Ray...") if err := downloader.CheckAndDownloadBoth(config.XrayDir, config.V2RayDir); err != nil { fmt.Fprintf(os.Stderr, "Ошибка загрузки ядер: %v\n", err) fmt.Println("\nНажмите Enter для выхода...") fmt.Scanln() os.Exit(1) } // Запуск CLI if err := cli.Run(); err != nil { fmt.Fprintf(os.Stderr, "Ошибка: %v\n", err) fmt.Println("\nНажмите Enter для выхода...") fmt.Scanln() os.Exit(1) } // Нормальный выход os.Exit(0) }