Skip to content

Commit a0bace0

Browse files
cockpit: start the Borg runner after all widgets are mounted
1 parent 10ac3fa commit a0bace0

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/borg/cockpit/app.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,27 @@ def on_load(self) -> None:
5353

5454
def on_mount(self) -> None:
5555
"""Initialize components."""
56-
from .runner import BorgRunner
57-
5856
self.query_one("#logo").styles.animate("opacity", 1, duration=1)
5957
self.query_one("#slogan").styles.animate("opacity", 1, duration=1)
6058

61-
self.start_time = time.monotonic()
62-
self.process_running = True
63-
args = getattr(self, "borg_args", ["--version"]) # Default to safe command if none passed
64-
self.runner = BorgRunner(args, self.handle_log_event)
65-
self.runner_task = asyncio.create_task(self.runner.start())
59+
# Delay runner start until after widgets are fully mounted
60+
self.call_after_refresh(self.start_runner)
61+
62+
def start_runner(self) -> None:
63+
"""Start the Borg runner after all widgets are mounted."""
64+
from .runner import BorgRunner
6665

6766
# Speed tracking
6867
self.total_lines_processed = 0
6968
self.last_lines_processed = 0
7069
self.speed_timer = self.set_interval(1.0, self.compute_speed)
7170

71+
self.start_time = time.monotonic()
72+
self.process_running = True
73+
args = getattr(self, "borg_args", ["--version"]) # Default to safe command if none passed
74+
self.runner = BorgRunner(args, self.handle_log_event)
75+
self.runner_task = asyncio.create_task(self.runner.start())
76+
7277
def compute_speed(self) -> None:
7378
"""Calculate and update speed (lines per second)."""
7479
current_lines = self.total_lines_processed

0 commit comments

Comments
 (0)