コード例 #1
0
    def _initialize_alpm(self, force_refresh=True):
        self.pacman = Pac()

        if force_refresh:
            self.pacman.refresh()
コード例 #2
0
ファイル: update.py プロジェクト: MichaelTunnell/Cnchi
    def _initialize_alpm(self, force_refresh=True):
        self.pacman = Pac()

        if force_refresh:
            self.pacman.refresh()
コード例 #3
0
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]
コード例 #4
0
ファイル: update.py プロジェクト: MichaelTunnell/Cnchi
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]