Merge pull request #9278 from ThomasWaldmann/fix-cockpit
Some checks failed
Lint / lint (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
CI / windows_tests (push) Has been cancelled

cockpit: start the Borg runner after all widgets are mounted
This commit is contained in:
TW 2026-01-29 18:43:48 +01:00 committed by GitHub
commit ff0756c1e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -53,22 +53,27 @@ class BorgCockpitApp(App):
def on_mount(self) -> None:
"""Initialize components."""
from .runner import BorgRunner
self.query_one("#logo").styles.animate("opacity", 1, duration=1)
self.query_one("#slogan").styles.animate("opacity", 1, duration=1)
# Delay runner start until after widgets are fully mounted
self.call_after_refresh(self.start_runner)
def start_runner(self) -> None:
"""Start the Borg runner after all widgets are mounted."""
from .runner import BorgRunner
# Speed tracking
self.total_lines_processed = 0
self.last_lines_processed = 0
self.speed_timer = self.set_interval(1.0, self.compute_speed)
self.start_time = time.monotonic()
self.process_running = True
args = getattr(self, "borg_args", ["--version"]) # Default to safe command if none passed
self.runner = BorgRunner(args, self.handle_log_event)
self.runner_task = asyncio.create_task(self.runner.start())
# Speed tracking
self.total_lines_processed = 0
self.last_lines_processed = 0
self.speed_timer = self.set_interval(1.0, self.compute_speed)
def compute_speed(self) -> None:
"""Calculate and update speed (lines per second)."""
current_lines = self.total_lines_processed