def _initialize_alpm(self, force_refresh=True): self.pacman = Pac() if force_refresh: self.pacman.refresh()
class UpdateModule(BaseModule): def __init__(self, name='_update', *args, **kwargs): super().__init__(name=name, *args, **kwargs) self.repo_version = '' self.pacman = None def _initialize_alpm(self, force_refresh=True): self.pacman = Pac() if force_refresh: self.pacman.refresh() def do_update_check(self, force_refresh=True): result = True restart = False if self.is_repo_version_newer(force_refresh): # Signal the UI to inform it that we are going to update Cnchi. yield '--update-available' result = self.pacman.install(['cnchi']) > -1 restart = result self.settings.cnchi_is_updated = result yield dict(result=result, restart=restart) @staticmethod def is_remote_version_newer(remote_version, local_version): """ If `remote_version` is newer than `local_version` returns True else False Notes: We are not currently using this method. It is being retained because it could be useful in the future. """ if not remote_version: return False # Version is always: x.y.z local_ver = local_version.split(".") remote_ver = remote_version.split(".") local = [int(local_ver[0]), int(local_ver[1]), int(local_ver[2])] remote = [int(remote_ver[0]), int(remote_ver[1]), int(remote_ver[2])] if remote[0] > local[0]: return True if remote[0] == local[0] and remote[1] > local[1]: return True if remote[0] == local[0] and remote[1] == local[ 1] and remote[2] > local[2]: return True return False def is_repo_version_newer(self, force_refresh=True): if self.pacman is None: self._initialize_alpm(force_refresh) pkg_objs = self.pacman.get_packages_with_available_update() return [p for p in pkg_objs if p and 'cnchi' == p.name]
class UpdateModule(BaseModule): def __init__(self, name='_update', *args, **kwargs): super().__init__(name=name, *args, **kwargs) self.repo_version = '' self.pacman = None def _initialize_alpm(self, force_refresh=True): self.pacman = Pac() if force_refresh: self.pacman.refresh() def do_update_check(self, force_refresh=True): result = True restart = False if self.is_repo_version_newer(force_refresh): # Signal the UI to inform it that we are going to update Cnchi. yield '--update-available' result = self.pacman.install(['cnchi']) > -1 restart = result self.settings.cnchi_is_updated = result yield dict(result=result, restart=restart) @staticmethod def is_remote_version_newer(remote_version, local_version): """ If `remote_version` is newer than `local_version` returns True else False Notes: We are not currently using this method. It is being retained because it could be useful in the future. """ if not remote_version: return False # Version is always: x.y.z local_ver = local_version.split(".") remote_ver = remote_version.split(".") local = [int(local_ver[0]), int(local_ver[1]), int(local_ver[2])] remote = [int(remote_ver[0]), int(remote_ver[1]), int(remote_ver[2])] if remote[0] > local[0]: return True if remote[0] == local[0] and remote[1] > local[1]: return True if remote[0] == local[0] and remote[1] == local[1] and remote[2] > local[2]: return True return False def is_repo_version_newer(self, force_refresh=True): if self.pacman is None: self._initialize_alpm(force_refresh) pkg_objs = self.pacman.get_packages_with_available_update() return [p for p in pkg_objs if p and 'cnchi' == p.name]