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>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#!/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())
|
||||
Reference in New Issue
Block a user