diff --git a/bauh/gems/arch/controller.py b/bauh/gems/arch/controller.py index acb7909a..a62b97a2 100644 --- a/bauh/gems/arch/controller.py +++ b/bauh/gems/arch/controller.py @@ -655,11 +655,8 @@ class ArchManager(SoftwareManager): return res def _is_wget_available(self): - try: - new_subprocess(['wget', '--version']) - return True - except FileNotFoundError: - return False + res = run_cmd('which wget') + return res and not res.strip().startswith('which ') def is_enabled(self) -> bool: return self.enabled @@ -690,7 +687,10 @@ class ArchManager(SoftwareManager): self.dcache_updater.start() self.comp_optimizer.start() self.aur_index_updater.start() - self.categories_map = self.categories_downloader.get_categories() + categories = self.categories_downloader.get_categories() + + if categories: + self.categories_map = categories def list_updates(self, internet_available: bool) -> List[PackageUpdate]: installed = self.read_installed(disk_loader=None, internet_available=internet_available).installed diff --git a/bauh/gems/arch/pacman.py b/bauh/gems/arch/pacman.py index b68ff21b..7681e2b2 100644 --- a/bauh/gems/arch/pacman.py +++ b/bauh/gems/arch/pacman.py @@ -1,19 +1,15 @@ import re -import subprocess from typing import List, Set -from bauh.api.abstract.handler import ProcessWatcher -from bauh.commons.system import run_cmd, new_subprocess, new_root_subprocess, SystemProcess, ProcessHandler +from bauh.commons.system import run_cmd, new_subprocess, new_root_subprocess, SystemProcess RE_DEPS = re.compile(r'[\w\-_]+:[\s\w_\-\.]+\s+\[\w+\]') RE_OPTDEPS = re.compile(r'[\w\._\-]+\s*:') + def is_enabled() -> bool: - try: - new_subprocess(['pacman', '--version']) - return True - except FileNotFoundError: - return False + res = run_cmd('which pacman') + return res and not res.strip().startswith('which ') def get_mirrors(pkgs: Set[str]) -> dict: diff --git a/bauh/gems/snap/controller.py b/bauh/gems/snap/controller.py index 71ad273b..affb7861 100644 --- a/bauh/gems/snap/controller.py +++ b/bauh/gems/snap/controller.py @@ -143,7 +143,10 @@ class SnapManager(SoftwareManager): return ProcessHandler(watcher).handle(SystemProcess(subproc=snap.refresh_and_stream(pkg.name, root_password))) def prepare(self): - self.categories = self.categories_downloader.get_categories() + categories = self.categories_downloader.get_categories() + + if categories: + self.categories = categories def list_updates(self, internet_available: bool) -> List[PackageUpdate]: pass