Distinguish node module and package.
This commit is contained in:
parent
aa8dd6bb70
commit
ddea6f957a
3 changed files with 28 additions and 1 deletions
|
@ -37,6 +37,7 @@ from buildlog_consultant.common import (
|
|||
MissingJDK,
|
||||
MissingJRE,
|
||||
MissingNodeModule,
|
||||
MissingNodePackage,
|
||||
MissingPhpClass,
|
||||
MissingRubyGem,
|
||||
MissingLibrary,
|
||||
|
@ -86,6 +87,7 @@ from .requirements import (
|
|||
PythonModuleRequirement,
|
||||
PythonPackageRequirement,
|
||||
CertificateAuthorityRequirement,
|
||||
NodeModuleRequirement,
|
||||
)
|
||||
from .resolver import UnsatisfiedRequirements
|
||||
|
||||
|
@ -114,7 +116,9 @@ def problem_to_upstream_requirement(problem): # noqa: C901
|
|||
elif isinstance(problem, MissingRPackage):
|
||||
return RPackageRequirement(problem.package, problem.minimum_version)
|
||||
elif isinstance(problem, MissingNodeModule):
|
||||
return NodePackageRequirement(problem.module)
|
||||
return NodeModuleRequirement(problem.module)
|
||||
elif isinstance(problem, MissingNodePackage):
|
||||
return NodePackageRequirement(problem.package)
|
||||
elif isinstance(problem, MissingLibrary):
|
||||
return LibraryRequirement(problem.library)
|
||||
elif isinstance(problem, MissingRubyFile):
|
||||
|
|
|
@ -131,6 +131,18 @@ class NodePackageRequirement(Requirement):
|
|||
return "%s(%r)" % (type(self).__name__, self.package)
|
||||
|
||||
|
||||
class NodeModuleRequirement(Requirement):
|
||||
|
||||
module: str
|
||||
|
||||
def __init__(self, module):
|
||||
super(NodeModuleRequirement, self).__init__("npm-module")
|
||||
self.module = module
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(%r)" % (type(self).__name__, self.module)
|
||||
|
||||
|
||||
class CargoCrateRequirement(Requirement):
|
||||
|
||||
crate: str
|
||||
|
|
|
@ -42,6 +42,7 @@ from ..requirements import (
|
|||
DhAddonRequirement,
|
||||
PhpClassRequirement,
|
||||
RPackageRequirement,
|
||||
NodeModuleRequirement,
|
||||
NodePackageRequirement,
|
||||
LibraryRequirement,
|
||||
RubyFileRequirement,
|
||||
|
@ -293,6 +294,15 @@ def resolve_r_package_req(apt_mgr, req):
|
|||
return find_reqs_simple(apt_mgr, paths, regex=True)
|
||||
|
||||
|
||||
def resolve_node_module_req(apt_mgr, req):
|
||||
paths = [
|
||||
"/usr/share/nodejs/.*/node_modules/%s/index.js" % re.escape(req.module),
|
||||
"/usr/lib/nodejs/%s/index.js" % re.escape(req.module),
|
||||
"/usr/share/nodejs/%s/index.js" % re.escape(req.module),
|
||||
]
|
||||
return find_reqs_simple(apt_mgr, paths, regex=True)
|
||||
|
||||
|
||||
def resolve_node_package_req(apt_mgr, req):
|
||||
paths = [
|
||||
"/usr/share/nodejs/.*/node_modules/%s/package\\.json" % re.escape(req.package),
|
||||
|
@ -507,6 +517,7 @@ APT_REQUIREMENT_RESOLVERS = [
|
|||
(DhAddonRequirement, resolve_dh_addon_req),
|
||||
(PhpClassRequirement, resolve_php_class_req),
|
||||
(RPackageRequirement, resolve_r_package_req),
|
||||
(NodeModuleRequirement, resolve_node_module_req),
|
||||
(NodePackageRequirement, resolve_node_package_req),
|
||||
(LibraryRequirement, resolve_library_req),
|
||||
(RubyFileRequirement, resolve_ruby_file_req),
|
||||
|
|
Loading…
Add table
Reference in a new issue