From 1f25a929850ea4b34c27746df3457fff7b423769 Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Tue, 17 Sep 2019 15:20:31 -0300 Subject: [PATCH] arch 'gem' only available for arch based distros --- bauh/api/abstract/context.py | 2 ++ bauh/gems/arch/controller.py | 16 +++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/bauh/api/abstract/context.py b/bauh/api/abstract/context.py index 6d4b2023..4ad92f11 100644 --- a/bauh/api/abstract/context.py +++ b/bauh/api/abstract/context.py @@ -1,4 +1,5 @@ import logging +import platform from bauh.api.abstract.cache import MemoryCacheFactory from bauh.api.abstract.disk import DiskCacheLoaderFactory @@ -28,3 +29,4 @@ class ApplicationContext: self.cache_factory = cache_factory self.disk_loader_factory = disk_loader_factory self.logger = logger + self.linux_distro = platform.linux_distribution() diff --git a/bauh/gems/arch/controller.py b/bauh/gems/arch/controller.py index d2ed351e..2dc022a8 100644 --- a/bauh/gems/arch/controller.py +++ b/bauh/gems/arch/controller.py @@ -41,6 +41,7 @@ class ArchManager(SoftwareManager): self.dcache_updater = ArchDiskCacheUpdater(context.logger) self.logger = context.logger self.enabled = True + self.arch_distro = self.context.linux_distro[0].lower() == 'arch' def _upgrade_search_result(self, apidata: dict, installed_pkgs: dict, downgrade_enabled: bool, res: SearchResult, disk_loader: DiskCacheLoader): app = self.mapper.map_api_data(apidata, installed_pkgs['not_signed']) @@ -517,7 +518,7 @@ class ArchManager(SoftwareManager): def can_work(self) -> bool: try: - return pacman.is_enabled() and self._is_wget_available() + return self.arch_distro and pacman.is_enabled() and self._is_wget_available() except FileNotFoundError: return False @@ -545,14 +546,15 @@ class ArchManager(SoftwareManager): def list_warnings(self) -> List[str]: warnings = [] - if not pacman.is_enabled(): - warnings.append(self.i18n['arch.warning.disabled'].format(bold('pacman'))) + if self.arch_distro: + if not pacman.is_enabled(): + warnings.append(self.i18n['arch.warning.disabled'].format(bold('pacman'))) - if not self._is_wget_available(): - warnings.append(self.i18n['arch.warning.disabled'].format(bold('wget'))) + if not self._is_wget_available(): + warnings.append(self.i18n['arch.warning.disabled'].format(bold('wget'))) - if not git.is_enabled(): - warnings.append(self.i18n['arch.warning.git'].format(bold('git'))) + if not git.is_enabled(): + warnings.append(self.i18n['arch.warning.git'].format(bold('git'))) return warnings