Example #1
0
    def _determine_current_repo_state_alpm(self):
        self.pkgs_alpm.remove_range(0, -1)

        try:
            with tarfile.open(self.alpm_db_path, 'r') as alpm_db:
                pkg_info_files = [
                    p for p in alpm_db.getmembers() if '/desc' in p.name
                ]

                for pkg_info_file in pkg_info_files:
                    pkg_info_bytes = alpm_db.extractfile(pkg_info_file)
                    pkg_file_name = TextIOWrapper(
                        pkg_info_bytes).readlines()[1].strip()
                    pkg_file_name = pkg_file_name.replace('.pkg', '-pkg')

                    pkgname, ver, rel, arch, suffix = pkg_file_name.rsplit(
                        '-', 4)

                    self.pkgs_alpm.add('{0}|{1}-{2}|{3}'.format(
                        pkgname, ver, rel, arch))

            self.pkg_count_alpm = len(self.pkgs_alpm)

        except Exception as err:
            logger.error(err)
Example #2
0
    def _determine_current_repo_state_alpm(self):
        self.pkgs_alpm.delete()

        try:
            with tarfile.open(self.alpm_db_path, 'r') as alpm_db:
                pkg_info_files = [p for p in alpm_db.getmembers() if '/desc' in p.name]

                for pkg_info_file in pkg_info_files:
                    pkg_info_bytes = alpm_db.extractfile(pkg_info_file)
                    pkg_file_name = TextIOWrapper(pkg_info_bytes).readlines()[1].strip()
                    pkg_file_name = pkg_file_name.replace('.pkg', '-pkg')

                    pkgname, ver, rel, arch, suffix = pkg_file_name.rsplit('-', 4)

                    self.pkgs_alpm.add('{0}|{1}-{2}|{3}'.format(pkgname, ver, rel, arch))

            self.pkg_count_alpm = len(self.pkgs_alpm)

        except Exception as err:
            logger.error(err)