More build systems

This commit is contained in:
Jelmer Vernooij 2021-03-02 04:19:06 +00:00
parent dd015abd4a
commit 0fa372afd4
No known key found for this signature in database
GPG key ID: 579C160D4C9E23E8
2 changed files with 107 additions and 18 deletions

View file

@ -119,6 +119,33 @@ class PypiResolver(Resolver):
raise NotImplementedError(self.explain)
class GoResolver(Resolver):
def __init__(self, session):
self.session = session
def __str__(self):
return "go"
def __repr__(self):
return "%s(%r)" % (type(self).__name__, self.session)
def install(self, requirements):
from ..requirements import GoPackageRequirement
missing = []
for requirement in requirements:
if not isinstance(requirement, GoPackageRequirement):
missing.append(requirement)
continue
self.session.check_call(["go", "get", requirement.package])
if missing:
raise UnsatisfiedRequirements(missing)
def explain(self, requirements):
raise NotImplementedError(self.explain)
NPM_COMMAND_PACKAGES = {
"del-cli": "del-cli",
}
@ -175,15 +202,17 @@ class StackedResolver(Resolver):
return
NATIVE_RESOLVER_CLS = [
CPANResolver,
PypiResolver,
NpmResolver,
GoResolver,
HackageResolver,
]
def native_resolvers(session):
return StackedResolver(
[
CPANResolver(session),
PypiResolver(session),
NpmResolver(session),
HackageResolver(session),
]
)
return StackedResolver([kls(session) for kls in NATIVE_RESOLVER_CLS])
class ExplainResolver(Resolver):
@ -207,12 +236,5 @@ def auto_resolver(session):
resolvers = []
if isinstance(session, SchrootSession) or user == "root":
resolvers.append(AptResolver.from_session(session))
resolvers.extend(
[
CPANResolver(session),
PypiResolver(session),
NpmResolver(session),
HackageResolver(session),
]
)
resolvers.extend([kls(session) for kls in NATIVE_RESOLVER_CLS])
return StackedResolver(resolvers)