prole/installer/main.py
chrisfu aad4c9c919 installer: switch workstation build to Docker, drop Vagrant
- Remove Vagrant from dependency checks and UI; use Docker for workstation build.\n- Add WORKSTATION_VERSION ARG + OCI version label in workstation/Dockerfile; tag image as prole-workstation:<version>.\n- Add installer.workstation helpers: parse version, compose canonical docker build (auto platform flags on Apple Silicon).\n- Refactor install.py Workstation page to display/execute docker build; write logs to logs/workstation-docker-<ts>.log; update summary links.\n- Update Deploy page copy: "Build workstation Docker image".\n- Centralize footer buttons styling/layout with installer.screen.create_nav_footer and use it from install.py.\n- Update installer package docs to describe Docker-based workstation helpers.
2025-12-03 22:55:21 -08:00

48 lines
1.2 KiB
Python

"""
Main UI orchestration for Prole Installer.
This module centralizes canvas/page registration and delegates page rendering
to feature modules. The legacy install.py will import and invoke run().
"""
from __future__ import annotations
import tkinter as tk
from tkinter import ttk, scrolledtext
from . import screen as ui
from . import build as build_mod
from . import deploy as deploy_mod
def register_page(app, page_id: str, frame):
if not hasattr(app, 'pages'):
app.pages = {}
app.pages[page_id] = frame
def clear_canvas_page(app):
if getattr(app, 'bg_canvas', None) is None:
return
for item in getattr(app, '_canvas_items', []):
try:
app.bg_canvas.delete(item)
except Exception:
pass
app._canvas_items = []
def create_page_build(app):
# Delegates build page UI creation to installer.build
return build_mod.create_build_page(app)
def create_page_deploy(app):
# Delegates deploy page UI creation to installer.deploy
return deploy_mod.create_deploy_page(app)
def run(app):
"""Entry for the legacy install.py to wire pages via this module."""
# Register pages through this orchestrator if needed in the future.
pass