mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 19:54:32 +00:00
- Add build-context helper to copy Docker context safely (ignore runtime data, keep symlinks) - Update UI and core actions to use ~/.prole/build and shared copy helper - Add/adjust tests and scripts; introduce knoe ops helpers and update manifests Co-authored-by: Junie <junie@jetbrains.com>
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
"""Ncurses UI adapter skeleton for the installer runner."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from ..runner import InstallerRunner
|
|
from ..state import InstallerState
|
|
from ..milestone import Milestone
|
|
|
|
|
|
class NcursesUI:
|
|
"""Minimal ncurses adapter that listens to runner events."""
|
|
|
|
def __init__(self, runner: InstallerRunner):
|
|
self.runner = runner
|
|
self._bind_runner()
|
|
|
|
def _bind_runner(self) -> None:
|
|
self.runner.on("on_enter_milestone", self.on_enter_milestone)
|
|
self.runner.on("on_validation_error", self.on_validation_error)
|
|
self.runner.on("on_progress", self.on_progress)
|
|
self.runner.on("on_complete", self.on_complete)
|
|
|
|
# Event handlers (override in concrete UI)
|
|
def on_enter_milestone(self, milestone: Milestone, state: InstallerState) -> None:
|
|
pass
|
|
|
|
def on_validation_error(
|
|
self, milestone: Milestone | None, state: InstallerState, errors: list[str]
|
|
) -> None:
|
|
pass
|
|
|
|
def on_progress(
|
|
self,
|
|
milestone: Milestone,
|
|
state: InstallerState,
|
|
message: str,
|
|
percent: float | None,
|
|
) -> None:
|
|
pass
|
|
|
|
def on_complete(self, milestone: Milestone | None, state: InstallerState) -> None:
|
|
pass
|
|
|
|
def start(self, start_id: str | None = None) -> bool:
|
|
"""Run the installer without a GUI main loop."""
|
|
return self.runner.run(start_id=start_id)
|