arch 'gem' only available for arch based distros

This commit is contained in:
Vinicius Moreira
2019-09-17 15:20:31 -03:00
parent 80f49bd083
commit 1f25a92985
2 changed files with 11 additions and 7 deletions

View File

@@ -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()

View File

@@ -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