Emirat/main_launcher.py
2025-03-18 23:15:29 +01:00

70 lines
2.2 KiB
Python

"""
Haupteinstiegspunkt für den Anwendungs-Launcher.
Dieses Skript sollte im Hauptverzeichnis (C:/Development/Emirat) abgelegt werden.
"""
import os
import sys
import logging
from datetime import datetime
# Logging einrichten
log_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "logs")
os.makedirs(log_dir, exist_ok=True)
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler(
os.path.join(log_dir, f'launcher_{datetime.now().strftime("%Y%m%d")}.log')
),
logging.StreamHandler(sys.stdout)
]
)
logger = logging.getLogger(__name__)
def main():
"""
Hauptfunktion zum Starten des Launchers.
"""
try:
logger.info("Starte Emirat Software Launcher")
# Launcher-Verzeichnis zum Python-Pfad hinzufügen
launcher_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "Launcher")
if launcher_dir not in sys.path:
sys.path.insert(0, launcher_dir)
# Importiere und starte den Launcher
from Launcher.app_launcher import ApplicationLauncher
app = ApplicationLauncher()
app.mainloop()
logger.info("Launcher beendet")
except Exception as e:
logger.error(f"Fehler beim Starten des Launchers: {str(e)}", exc_info=True)
# Bei Fehlern im Grafikmodus einen Dialog anzeigen
try:
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.withdraw() # Verstecke das Hauptfenster
messagebox.showerror(
"Launcher-Fehler",
f"Der Launcher konnte nicht gestartet werden:\n\n{str(e)}\n\n"
f"Details wurden in die Logdatei geschrieben:\n{os.path.join(log_dir, 'launcher_*.log')}"
)
except:
# Fallback, wenn selbst der Fehlerdialog nicht angezeigt werden kann
print(f"KRITISCHER FEHLER: Der Launcher konnte nicht gestartet werden: {str(e)}")
print(f"Details wurden in die Logdatei geschrieben: {os.path.join(log_dir, 'launcher_*.log')}")
input("Drücken Sie Enter, um fortzufahren...")
if __name__ == "__main__":
main()