From 5b8e93d35a0385497e8f0a74d0e075c237d8bf84 Mon Sep 17 00:00:00 2001 From: dw-0 Date: Sun, 19 Apr 2026 12:17:54 +0200 Subject: [PATCH] fix(core): refresh system package list in update menu after update --- kiauh/core/menus/update_menu.py | 10 +++++++++- kiauh/utils/sys_utils.py | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/kiauh/core/menus/update_menu.py b/kiauh/core/menus/update_menu.py index f5a8661..3bb7661 100644 --- a/kiauh/core/menus/update_menu.py +++ b/kiauh/core/menus/update_menu.py @@ -251,6 +251,9 @@ class UpdateMenu(BaseMenu): self._set_status_data("klipperscreen", get_klipperscreen_status) self._set_status_data("crowsnest", get_crowsnest_status) + self._fetch_system_package_update_status() + + def _fetch_system_package_update_status(self) -> None: update_system_package_lists(silent=True) self.packages = get_upgradable_packages() self.package_count = len(self.packages) @@ -340,15 +343,20 @@ class UpdateMenu(BaseMenu): try: pkgs: str = ", ".join(self.packages) + Logger.print_dialog( DialogType.CUSTOM, ["The following packages will be upgraded:", "\n\n", pkgs], custom_title="UPGRADABLE SYSTEM UPDATES", ) - if not get_confirm("Continue?"): + + if not get_confirm("Upgrade packages?"): return + Logger.print_status("Upgrading system packages ...") + upgrade_system_packages(self.packages) + self._fetch_system_package_update_status() except Exception as e: Logger.print_error(f"Error upgrading system packages:\n{e}") raise diff --git a/kiauh/utils/sys_utils.py b/kiauh/utils/sys_utils.py index 02354aa..8f4a25f 100644 --- a/kiauh/utils/sys_utils.py +++ b/kiauh/utils/sys_utils.py @@ -284,12 +284,14 @@ def get_upgradable_packages() -> List[str]: try: command = ["apt", "list", "--upgradable"] output: str = check_output(command, stderr=DEVNULL, text=True, encoding="utf-8") - pkglist = [] + pkglist: List[str] = [] + for line in output.split("\n"): if "/" not in line: continue pkg = line.split("/")[0] pkglist.append(pkg) + return pkglist except CalledProcessError as e: raise Exception(f"Error reading upgradable packages: {e}")