#!/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())