def sanity_check(repo, category, name, vernum, suff, rev, slot, ver=None):
"""
Checks whether a package descriptor is valid and corresponds
to a package in a configured portage repository
"""
if not name:
return False
if repo and repo not in list(portage_repos()):
return False
if not ver:
if (rev or suff) and not vernum:
return False
if vernum:
ver = ver_str(vernum, suff, rev)
else:
ver = None
pkgs = repo_pkgs(repo, category, name, ver, slot)
if not pkgs:
return False
pkg = sorted(pkgs, key=cmp_to_key(lambda x,y:vercmp(x[3],y[3])), reverse=True)[0]
return PortagePackage(*pkg)
评论列表
文章目录