mirror of
https://github.com/lilydjwg/nvchecker
synced 2025-02-18 19:47:05 +00:00
archpkg: support provides
This commit is contained in:
parent
7e44dd5767
commit
be7e54404e
@ -438,7 +438,10 @@ archpkg
|
|||||||
Name of the Arch Linux package.
|
Name of the Arch Linux package.
|
||||||
|
|
||||||
strip-release
|
strip-release
|
||||||
Strip the release part.
|
Strip the release part, only return part before ``-``.
|
||||||
|
|
||||||
|
provided
|
||||||
|
Instead of the package version, return the version this package provides. Its value is what the package provides, and ``strip-release`` takes effect too. This is best used with libraries.
|
||||||
|
|
||||||
Check Debian Linux official packages
|
Check Debian Linux official packages
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
@ -14,6 +14,8 @@ get_cacheable_conf = conf_cacheable_with_name('archpkg')
|
|||||||
async def get_version(name, conf, **kwargs):
|
async def get_version(name, conf, **kwargs):
|
||||||
pkg = conf.get('archpkg') or name
|
pkg = conf.get('archpkg') or name
|
||||||
strip_release = conf.getboolean('strip-release', False)
|
strip_release = conf.getboolean('strip-release', False)
|
||||||
|
provided = conf.get('provided')
|
||||||
|
|
||||||
async with session.get(URL, params={"name": pkg}) as res:
|
async with session.get(URL, params={"name": pkg}) as res:
|
||||||
data = await res.json()
|
data = await res.json()
|
||||||
|
|
||||||
@ -22,7 +24,13 @@ async def get_version(name, conf, **kwargs):
|
|||||||
return
|
return
|
||||||
|
|
||||||
r = [r for r in data['results'] if r['repo'] != 'testing'][0]
|
r = [r for r in data['results'] if r['repo'] != 'testing'][0]
|
||||||
|
|
||||||
|
if provided:
|
||||||
|
provides = dict(x.split('=', 1) for x in r['provides'])
|
||||||
|
version = provides.get(provided, None)
|
||||||
if strip_release:
|
if strip_release:
|
||||||
|
version = version.split('-', 1)[0]
|
||||||
|
elif strip_release:
|
||||||
version = r['pkgver']
|
version = r['pkgver']
|
||||||
else:
|
else:
|
||||||
version = r['pkgver'] + '-' + r['pkgrel']
|
version = r['pkgver'] + '-' + r['pkgrel']
|
||||||
|
@ -12,3 +12,19 @@ async def test_archpkg(get_version):
|
|||||||
@flaky
|
@flaky
|
||||||
async def test_archpkg_strip_release(get_version):
|
async def test_archpkg_strip_release(get_version):
|
||||||
assert await get_version("ipw2100-fw", {"archpkg": None, "strip-release": 1}) == "1.3"
|
assert await get_version("ipw2100-fw", {"archpkg": None, "strip-release": 1}) == "1.3"
|
||||||
|
|
||||||
|
@flaky
|
||||||
|
async def test_archpkg_provided(get_version):
|
||||||
|
assert await get_version("jsoncpp", {
|
||||||
|
"archpkg": None,
|
||||||
|
"provided": "libjsoncpp.so",
|
||||||
|
}) == "21-64"
|
||||||
|
|
||||||
|
@flaky
|
||||||
|
async def test_archpkg_provided_strip(get_version):
|
||||||
|
assert await get_version("jsoncpp", {
|
||||||
|
"archpkg": None,
|
||||||
|
"provided": "libjsoncpp.so",
|
||||||
|
"strip-release": True,
|
||||||
|
}) == "21"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user