def _try_get_current_manager(cls): """ Try to detect a package manager used in a current Gentoo system. """ if utils.get_distro_name().find('gentoo') == -1: return None if 'PACKAGE_MANAGER' in os.environ: pm = os.environ['PACKAGE_MANAGER'] if pm == 'paludis': # Try to import paludis module try: import paludis return GentooPackageManager.PALUDIS except ImportError: # TODO Environment tells that paludis must be used, but # it seems latter was build w/o USE=python... # Need to report an error!!?? return None elif pm == 'portage': # Fallback to default: portage pass else: # ATTENTION Some unknown package manager?! Which one? return None # Try to import portage module try: import portage return GentooPackageManager.PORTAGE except ImportError: pass
def _process_dependency(self, dep_t, dep_l): """Add dependencies into self.dependencies, possibly also adding system packages that contain non-distro package managers (e.g. if someone wants to install dependencies with pip and pip is not present, it will get installed through RPM on RPM based systems, etc. Skips dependencies that are supposed to be installed by system manager that is not native to this system. """ if dep_t not in managers: err = 'No package manager for dependency type "{dep_t}"'.format(dep_t=dep_t) raise exceptions.NoPackageManagerException(err) # try to get list of distros where the dependency type is system type distros = settings.SYSTEM_DEPTYPES_SHORTCUTS.get(dep_t, None) if not distros: # non-distro dependency type sysdep_t = self.get_system_deptype_shortcut() # for now, just take the first manager that can install dep_t and install this manager self._process_dependency(sysdep_t, managers[dep_t][0].get_distro_dependencies(sysdep_t)) else: local_distro = utils.get_distro_name() found = False for distro in distros: if distro in local_distro: found = True break if not found: # distro dependency type, but for another distro return self.__add_dependencies(dep_t, dep_l)
def _try_get_current_manager(cls): """ Try to detect a package manager used in a current Gentoo system. """ if utils.get_distro_name().find('gentoo') == -1: return None if 'PACKAGE_MANAGER' in os.environ: pm = os.environ['PACKAGE_MANAGER'] if pm == 'paludis': # Try to import paludis module try: import paludis return GentooPackageManager.PALUDIS except ImportError: # TODO Environment tells that paludis must be used, but # it seems latter was build w/o USE=python... # Need to report an error!!?? return None elif pm == 'portage': # Fallback to default: portage pass else: # ATTENTION Some unknown package manager?! Which one? return None # Try to import portage module try: import portage return GentooPackageManager.PORTAGE except ImportError: return None
def get_system_deptype_shortcut(self): local_distro = utils.get_distro_name() for dep_t, distros in settings.SYSTEM_DEPTYPES_SHORTCUTS.items(): for distro in distros: if distro in local_distro: return dep_t # just try rpm if unkown (not very nice?) return 'rpm'
def run(self): newargs = {} newargs['q'] = ' '.join(self.kwargs['query']) newargs['noassistants'] = self.kwargs['noassistants'] newargs['unstable'] = self.kwargs['unstable'] newargs['notactive'] = self.kwargs['deactivated'] newargs['minimal_rank'] = self.kwargs['minrank'] newargs['minimal_rank_count'] = self.kwargs['mincount'] if not self.kwargs['allplatforms']: newargs['platform'] = utils.get_distro_name() try: dapicli.print_search(**newargs) except exceptions.DapiError as e: logger.error(utils.exc_as_decoded_string(e)) raise exceptions.ExecutionException(utils.exc_as_decoded_string(e))
def run(self): newargs = {} newargs['q'] = ' '.join(self.kwargs['query']) newargs['noassistants'] = self.kwargs['noassistants'] newargs['unstable'] = self.kwargs['unstable'] newargs['notactive'] = self.kwargs['deactivated'] newargs['minimal_rank'] = self.kwargs['minrank'] newargs['minimal_rank_count'] = self.kwargs['mincount'] if not self.kwargs['allplatforms']: newargs['platform'] = utils.get_distro_name() try: logger.infolines(dapicli.format_search(**newargs)) except exceptions.DapiError as e: logger.error(utils.exc_as_decoded_string(e)) raise exceptions.ExecutionException(utils.exc_as_decoded_string(e))
def _is_supported_here(dap_api_data): supported = dap_api_data.get('supported_platforms', []) if not supported: # assume all platforms are supported return True return utils.get_distro_name() in supported