aboutsummaryrefslogtreecommitdiff
path: root/repos/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'repos/__init__.py')
-rw-r--r--repos/__init__.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/repos/__init__.py b/repos/__init__.py
index 7023071..c836861 100644
--- a/repos/__init__.py
+++ b/repos/__init__.py
@@ -1,7 +1,7 @@
from typing import Mapping, List
from . import alpine_linux, arch_linux, crates_io
-from .base import Repository, Version
+from .base import Repository, slug, Version
__all__ = [
'get_versions',
@@ -19,10 +19,21 @@ all_repos: List[Repository] = [
*repos_from(crates_io),
]
-def get_versions(package: str) -> Mapping[str, Version]:
+def get_versions(package: str, args: Mapping[str, str]) -> Mapping[str, Version]:
+ special_cases = dict()
+ for repo, name in args.items():
+ special_cases[repo] = name
result = dict()
for repo in all_repos:
repo_versions = repo.get_versions()
- if package in repo_versions:
- result[repo.full_name()] = repo_versions[package]
+ if slug(repo.full_name()) in special_cases:
+ package_here = special_cases[slug(repo.full_name())]
+ elif slug(repo.family) in special_cases:
+ package_here = special_cases[slug(repo.family)]
+ elif slug(repo.repo) in special_cases:
+ package_here = special_cases[slug(repo.repo)]
+ else:
+ package_here = package
+ if package_here in repo_versions:
+ result[repo.full_name()] = repo_versions[package_here]
return result