Files
JoinDomainGUI/main.py
T
tuxgyverandClaude Sonnet 5 1feb72bf17 Version initiale : diagnostic réseau AD + jointure de domaine
Application PySide6 (GUI + CLI) fonctionnant sous Linux et Windows :
- Diagnostic réseau complet AD (DNS, SRV, ports, NTP, outils requis)
- Jointure de domaine via realmd (Linux) ou Add-Computer (Windows)
- Installation automatique des prérequis Linux (apt)
- CLI colorée (diagnose/join/install-prereqs), sans dépendance PySide6
- Scripts de packaging PyInstaller pour Linux et Windows

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 11:40:11 +02:00

49 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""Point d'entrée : lance la GUI si aucun argument n'est fourni, sinon la CLI.
Exemples CLI :
python main.py diagnose --domain h3adm.lan
python main.py join --domain h3adm.lan --username administrateur --password-stdin
python main.py install-prereqs
python main.py --help
"""
import sys
def _attach_windows_console() -> None:
"""Rattache le binaire packagé (--windowed, sans console) au terminal appelant
afin que la sortie de la CLI reste visible sous Windows."""
import ctypes
ATTACH_PARENT_PROCESS = -1
if ctypes.windll.kernel32.AttachConsole(ATTACH_PARENT_PROCESS):
try:
sys.stdout = open("CONOUT$", "w")
sys.stderr = open("CONOUT$", "w")
except OSError:
pass
def main() -> int:
if len(sys.argv) > 1:
if sys.platform == "win32":
_attach_windows_console()
from domainjoin.cli import run_cli
return run_cli(sys.argv[1:])
from PySide6.QtWidgets import QApplication
from domainjoin.gui import MainWindow
app = QApplication(sys.argv)
app.setApplicationName("JoinDomainGUI")
window = MainWindow()
window.show()
return app.exec()
if __name__ == "__main__":
sys.exit(main())