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,
|
MissingJDK,
|
||||||
MissingJRE,
|
MissingJRE,
|
||||||
MissingNodeModule,
|
MissingNodeModule,
|
||||||
|
MissingNodePackage,
|
||||||
MissingPhpClass,
|
MissingPhpClass,
|
||||||
MissingRubyGem,
|
MissingRubyGem,
|
||||||
MissingLibrary,
|
MissingLibrary,
|
||||||
|
@ -86,6 +87,7 @@ from .requirements import (
|
||||||
PythonModuleRequirement,
|
PythonModuleRequirement,
|
||||||
PythonPackageRequirement,
|
PythonPackageRequirement,
|
||||||
CertificateAuthorityRequirement,
|
CertificateAuthorityRequirement,
|
||||||
|
NodeModuleRequirement,
|
||||||
)
|
)
|
||||||
from .resolver import UnsatisfiedRequirements
|
from .resolver import UnsatisfiedRequirements
|
||||||
|
|
||||||
|
@ -114,7 +116,9 @@ def problem_to_upstream_requirement(problem): # noqa: C901
|
||||||
elif isinstance(problem, MissingRPackage):
|
elif isinstance(problem, MissingRPackage):
|
||||||
return RPackageRequirement(problem.package, problem.minimum_version)
|
return RPackageRequirement(problem.package, problem.minimum_version)
|
||||||
elif isinstance(problem, MissingNodeModule):
|
elif isinstance(problem, MissingNodeModule):
|
||||||
return NodePackageRequirement(problem.module)
|
return NodeModuleRequirement(problem.module)
|
||||||
|
elif isinstance(problem, MissingNodePackage):
|
||||||
|
return NodePackageRequirement(problem.package)
|
||||||
elif isinstance(problem, MissingLibrary):
|
elif isinstance(problem, MissingLibrary):
|
||||||
return LibraryRequirement(problem.library)
|
return LibraryRequirement(problem.library)
|
||||||
elif isinstance(problem, MissingRubyFile):
|
elif isinstance(problem, MissingRubyFile):
|
||||||
|
|
|
@ -131,6 +131,18 @@ class NodePackageRequirement(Requirement):
|
||||||
return "%s(%r)" % (type(self).__name__, self.package)
|
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):
|
class CargoCrateRequirement(Requirement):
|
||||||
|
|
||||||
crate: str
|
crate: str
|
||||||
|
|
|
@ -42,6 +42,7 @@ from ..requirements import (
|
||||||
DhAddonRequirement,
|
DhAddonRequirement,
|
||||||
PhpClassRequirement,
|
PhpClassRequirement,
|
||||||
RPackageRequirement,
|
RPackageRequirement,
|
||||||
|
NodeModuleRequirement,
|
||||||
NodePackageRequirement,
|
NodePackageRequirement,
|
||||||
LibraryRequirement,
|
LibraryRequirement,
|
||||||
RubyFileRequirement,
|
RubyFileRequirement,
|
||||||
|
@ -293,6 +294,15 @@ def resolve_r_package_req(apt_mgr, req):
|
||||||
return find_reqs_simple(apt_mgr, paths, regex=True)
|
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):
|
def resolve_node_package_req(apt_mgr, req):
|
||||||
paths = [
|
paths = [
|
||||||
"/usr/share/nodejs/.*/node_modules/%s/package\\.json" % re.escape(req.package),
|
"/usr/share/nodejs/.*/node_modules/%s/package\\.json" % re.escape(req.package),
|
||||||
|
@ -507,6 +517,7 @@ APT_REQUIREMENT_RESOLVERS = [
|
||||||
(DhAddonRequirement, resolve_dh_addon_req),
|
(DhAddonRequirement, resolve_dh_addon_req),
|
||||||
(PhpClassRequirement, resolve_php_class_req),
|
(PhpClassRequirement, resolve_php_class_req),
|
||||||
(RPackageRequirement, resolve_r_package_req),
|
(RPackageRequirement, resolve_r_package_req),
|
||||||
|
(NodeModuleRequirement, resolve_node_module_req),
|
||||||
(NodePackageRequirement, resolve_node_package_req),
|
(NodePackageRequirement, resolve_node_package_req),
|
||||||
(LibraryRequirement, resolve_library_req),
|
(LibraryRequirement, resolve_library_req),
|
||||||
(RubyFileRequirement, resolve_ruby_file_req),
|
(RubyFileRequirement, resolve_ruby_file_req),
|
||||||
|
|
Loading…
Add table
Reference in a new issue