mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 18:44:33 +00:00
- Finalized stable, repeatable reset logic for the k3d pipeline. - Refactored installer into modular components: core, milestone, runner, and state. - Introduced new UI abstractions with support for ncurses and Tkinter. - Updated initialization scripts and configurations for CloudNativePG, Kerberos, OpenBao, and Monitoring. - Improved pipeline repair and port-forwarding mechanisms.
26 lines
732 B
Python
26 lines
732 B
Python
"""UI-agnostic installer engine."""
|
|
from __future__ import annotations
|
|
|
|
from typing import Iterable
|
|
|
|
from .milestone import Milestone
|
|
from .runner import InstallerRunner
|
|
from .state import InstallerState
|
|
|
|
|
|
class InstallerCore:
|
|
"""Convenience wrapper around the runner and milestones."""
|
|
|
|
def __init__(self, milestones: Iterable[Milestone], state: InstallerState | None = None):
|
|
self.runner = InstallerRunner(milestones, state=state)
|
|
|
|
@property
|
|
def state(self) -> InstallerState:
|
|
return self.runner.state
|
|
|
|
def on(self, event: str, callback) -> None:
|
|
self.runner.on(event, callback)
|
|
|
|
def run(self, start_id: str | None = None) -> bool:
|
|
return self.runner.run(start_id=start_id)
|