mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-10 03:04:15 +02:00
[aur] architecture dependencies
This commit is contained in:
@@ -14,8 +14,26 @@ URL_SRC_INFO = 'https://aur.archlinux.org/cgit/aur.git/plain/.SRCINFO?h='
|
||||
URL_SEARCH = 'https://aur.archlinux.org/rpc/?v=5&type=search&arg='
|
||||
|
||||
RE_SRCINFO_KEYS = re.compile(r'(\w+)\s+=\s+(.+)\n')
|
||||
RE_SPLIT_DEP = re.compile(r'[<>]?=')
|
||||
|
||||
KNOWN_LIST_FIELDS = ('validpgpkeys', 'depends', 'optdepends', 'sha512sums', 'sha512sums_x86_64', 'source', 'source_x86_64', 'makedepends')
|
||||
KNOWN_LIST_FIELDS = ('validpgpkeys',
|
||||
'checkdepends',
|
||||
'checkdepends_x86_64',
|
||||
'checkdepends_i686',
|
||||
'depends',
|
||||
'depends_x86_64',
|
||||
'depends_i686',
|
||||
'optdepends',
|
||||
'optdepends_x86_64',
|
||||
'optdepends_i686',
|
||||
'sha512sums',
|
||||
'sha512sums_x86_64',
|
||||
'source',
|
||||
'source_x86_64',
|
||||
'source_i686'
|
||||
'makedepends',
|
||||
'makedepends_x86_64',
|
||||
'makedepends_i686')
|
||||
|
||||
|
||||
def map_pkgbuild(pkgbuild: str) -> dict:
|
||||
@@ -31,7 +49,7 @@ def map_srcinfo(string: str, fields: Set[str] = None) -> dict:
|
||||
field_re = RE_SRCINFO_KEYS
|
||||
|
||||
for match in field_re.finditer(string):
|
||||
field = match.group(0).split('=')
|
||||
field = RE_SPLIT_DEP.split(match.group(0))
|
||||
key = field[0].strip()
|
||||
val = field[1].strip()
|
||||
|
||||
@@ -48,9 +66,10 @@ def map_srcinfo(string: str, fields: Set[str] = None) -> dict:
|
||||
|
||||
class AURClient:
|
||||
|
||||
def __init__(self, http_client: HttpClient, logger: logging.Logger):
|
||||
def __init__(self, http_client: HttpClient, logger: logging.Logger, x86_64: bool):
|
||||
self.http_client = http_client
|
||||
self.logger = logger
|
||||
self.x86_64 = x86_64
|
||||
|
||||
def search(self, words: str) -> dict:
|
||||
return self.http_client.get_json(URL_SEARCH + words)
|
||||
@@ -81,7 +100,12 @@ class AURClient:
|
||||
|
||||
def extract_required_dependencies(self, srcinfo: dict) -> Set[str]:
|
||||
deps = set()
|
||||
for attr in ('makedepends', 'depends', 'checkdepends'):
|
||||
for attr in ('makedepends',
|
||||
'makedepends_{}'.format('x86_64' if self.x86_64 else 'i686'),
|
||||
'depends',
|
||||
'depends_{}'.format('x86_64' if self.x86_64 else 'i686'),
|
||||
'checkdepends',
|
||||
'checkdepends_{}'.format('x86_64' if self.x86_64 else 'i686')):
|
||||
if srcinfo.get(attr):
|
||||
deps.update([pacman.RE_DEP_OPERATORS.split(dep)[0] for dep in srcinfo[attr]])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user