def grep_package(self, name, pattern=None):
        try:
            package_list = []
            found_items = [
                line.rstrip()
                for line in repoquery(
                    "--repofrompath={0},{1}".format(self.cache_uuid, self.cache_dir),
                    '--search', name)
            ]

            for item in found_items:
                item_info = [
                    line.rstrip()
                    for line in repoquery(
                        "--repofrompath={0},{1}".format(self.cache_uuid, self.cache_dir),
                        '--info', item)
                ]

                pkg_info = {}
                for record in item_info:
                    try:
                        key, value = record.rstrip().split(':', 1)
                        key = key.strip()
                        value = value.strip()
                        if key == 'Description':
                            break
                        pkg_info[key] = value
                    except:
                        continue
                package_list.append([pkg_info['Name'], pkg_info['Version']])

            return package_list
        except:
            return []
Example #2
0
    def list_group(self, name='', repofrompath=[]):
        queryargs = ['--repofrompath={},{}'.format(self.repo_id, self.cache_dir)]
        for item in repofrompath:
            queryargs.append('--repofrompath=%s' % item)
        queryargs.extend(['--group', '--list', name])

        return [line.strip() for line in repoquery(*queryargs)]
Example #3
0
    def get_packages(self, name='-a', repofrompath=[]):
        queryfmt = 'name : %{name}\n' \
                   'epoch : %{epoch}\n' \
                   'version : %{version}\n' \
                   'release : %{release}\n' \
                   'vendor : %{vendor}\n' \
                   'packager : %{packager}\n' \
                   'repoid : %{repoid}\n' \
                   'packager : %{packager}\n' \
                   'summary : %{summary}\n' \
                   'source : %{sourcerpm}\n' \
                   'END_OF_RECORD'
        queryargs = []
        item = '{},{}'.format(self.repo_id, self.cache_dir)
        if item not in repofrompath:
            queryargs.append('--repofrompath=%s' % item)
        for item in repofrompath:
            queryargs.append('--repofrompath=%s' % item)
        queryargs.extend(['--qf', queryfmt, name])

        pkg_info = {}
        for line in repoquery(*queryargs):
            line = line.strip()
            if line == 'END_OF_RECORD':
                yield pkg_info
                pkg_info = {}
            kv = line.split(' : ', 1)
            if len(kv) == 2:
                pkg_info[kv[0]] = kv[1]
Example #4
0
def list_dependencies(name, repoid):
    reqs = set()
    for item in repoquery('--repoid=%s' % repoid, '--qf', '%{name}',
                          '--resolve', '--requires', name):
        item = item.strip()
        if item != name:
            reqs.add(item)
    return list(reqs)
Example #5
0
    def get_dependencies(self, name, repofrompath=[]):
        queryargs = ['--repofrompath={},{}'.format(self.repo_id, self.cache_dir)]
        for item in repofrompath:
            queryargs.append('--repofrompath=%s' % item)
        queryargs.extend(['--qf', '%{name}', '--resolve', '--requires', name])

        reqs = set()
        for item in repoquery(*queryargs):
            item = item.strip()
            if item != name:
                reqs.add(item)

        return list(reqs)
Example #6
0
def list_packages(repoid):
    queryfmt = '{"name":"%{name}","version":"%{version}",' \
               '"release":"%{release}","vendor":"%{vendor}",' \
               '"repoid":"%{repoid}","packager":"%{packager}"}'
    for line in repoquery('-a', '--repoid=%s' % repoid, '--qf', queryfmt):
        yield json.loads(line)