79 lines
2 KiB
Python
79 lines
2 KiB
Python
#!/usr/bin/env python3
|
|
"""Launch script for DazedMTLTool GUI."""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parent.parent
|
|
sys.path.insert(0, str(PROJECT_ROOT))
|
|
|
|
if sys.platform.startswith("linux"):
|
|
from util.linux_desktop import configure_qt_platform
|
|
|
|
configure_qt_platform()
|
|
|
|
|
|
def check_dependencies():
|
|
"""Check if required dependencies are installed."""
|
|
missing_deps = []
|
|
|
|
try:
|
|
import PyQt5 # noqa: F401
|
|
except ImportError:
|
|
missing_deps.append("PyQt5")
|
|
|
|
try:
|
|
from dotenv import load_dotenv # noqa: F401
|
|
except ImportError:
|
|
missing_deps.append("python-dotenv")
|
|
|
|
if missing_deps:
|
|
print("Missing dependencies:")
|
|
for dep in missing_deps:
|
|
print(f" - {dep}")
|
|
print("\nPlease install them using:")
|
|
print(" pip install -r requirements.txt")
|
|
return False
|
|
|
|
return True
|
|
|
|
|
|
def main():
|
|
"""Main entry point."""
|
|
print("DazedMTLTool GUI Launcher")
|
|
print("=" * 40)
|
|
|
|
from util.paths import ensure_vocab_file, migrate_root_data_files
|
|
|
|
migrate_root_data_files()
|
|
ensure_vocab_file()
|
|
|
|
if not check_dependencies():
|
|
sys.exit(1)
|
|
|
|
try:
|
|
from util.ace.update_tools import seed_ace_tools
|
|
seed_ace_tools()
|
|
except Exception as exc:
|
|
print(f"Warning: Ace tool setup failed ({exc}). Ace features may be unavailable.")
|
|
|
|
try:
|
|
from util.forge.update_tools import seed_forge_plugins
|
|
seed_forge_plugins()
|
|
except Exception as exc:
|
|
print(f"Warning: Forge plugin setup failed ({exc}). Playtest Forge may be unavailable.")
|
|
|
|
try:
|
|
from gui.main import main as gui_main
|
|
gui_main()
|
|
except ImportError as e:
|
|
print(f"Error importing GUI modules: {e}")
|
|
print("Make sure all GUI files are in the 'gui' directory")
|
|
sys.exit(1)
|
|
except Exception as e:
|
|
print(f"Error starting GUI: {e}")
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|