re.escape literals.
This commit is contained in:
parent
b1aabf40de
commit
5030d888c3
1 changed files with 33 additions and 32 deletions
|
@ -19,6 +19,7 @@ from itertools import chain
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import posixpath
|
import posixpath
|
||||||
|
import re
|
||||||
|
|
||||||
from debian.changelog import Version
|
from debian.changelog import Version
|
||||||
from debian.deb822 import PkgRelation
|
from debian.deb822 import PkgRelation
|
||||||
|
@ -119,14 +120,14 @@ def python_spec_to_apt_rels(pkg_name, specs):
|
||||||
def get_package_for_python_package(apt_mgr, package, python_version, specs=None):
|
def get_package_for_python_package(apt_mgr, package, python_version, specs=None):
|
||||||
if python_version == "pypy":
|
if python_version == "pypy":
|
||||||
pkg_name = apt_mgr.get_package_for_paths(
|
pkg_name = apt_mgr.get_package_for_paths(
|
||||||
["/usr/lib/pypy/dist-packages/%s-.*.egg-info" % package.replace("-", "_")],
|
["/usr/lib/pypy/dist-packages/%s-.*.egg-info" % re.escape(package.replace("-", "_"))],
|
||||||
regex=True,
|
regex=True,
|
||||||
)
|
)
|
||||||
elif python_version == "cpython2":
|
elif python_version == "cpython2":
|
||||||
pkg_name = apt_mgr.get_package_for_paths(
|
pkg_name = apt_mgr.get_package_for_paths(
|
||||||
[
|
[
|
||||||
"/usr/lib/python2\\.[0-9]/dist-packages/%s-.*.egg-info"
|
"/usr/lib/python2\\.[0-9]/dist-packages/%s-.*.egg-info"
|
||||||
% package.replace("-", "_")
|
% re.escape(package.replace("-", "_"))
|
||||||
],
|
],
|
||||||
regex=True,
|
regex=True,
|
||||||
)
|
)
|
||||||
|
@ -134,7 +135,7 @@ def get_package_for_python_package(apt_mgr, package, python_version, specs=None)
|
||||||
pkg_name = apt_mgr.get_package_for_paths(
|
pkg_name = apt_mgr.get_package_for_paths(
|
||||||
[
|
[
|
||||||
"/usr/lib/python3/dist-packages/%s-.*.egg-info"
|
"/usr/lib/python3/dist-packages/%s-.*.egg-info"
|
||||||
% package.replace("-", "_")
|
% re.escape(package.replace("-", "_"))
|
||||||
],
|
],
|
||||||
regex=True,
|
regex=True,
|
||||||
)
|
)
|
||||||
|
@ -151,50 +152,50 @@ def get_package_for_python_module(apt_mgr, module, python_version, specs):
|
||||||
paths = [
|
paths = [
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python3/dist-packages",
|
"/usr/lib/python3/dist-packages",
|
||||||
module.replace(".", "/"),
|
re.escape(module.replace(".", "/")),
|
||||||
"__init__.py",
|
"__init__.py",
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python3/dist-packages", module.replace(".", "/") + ".py"
|
"/usr/lib/python3/dist-packages", re.escape(module.replace(".", "/")) + ".py"
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python3\\.[0-9]+/lib-dynload",
|
"/usr/lib/python3\\.[0-9]+/lib-dynload",
|
||||||
module.replace(".", "/") + "\\.cpython-.*\\.so",
|
re.escape(module.replace(".", "/")) + "\\.cpython-.*\\.so",
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python3\\.[0-9]+/", module.replace(".", "/") + ".py"
|
"/usr/lib/python3\\.[0-9]+/", re.escape(module.replace(".", "/")) + ".py"
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python3\\.[0-9]+/", module.replace(".", "/"), "__init__.py"
|
"/usr/lib/python3\\.[0-9]+/", re.escape(module.replace(".", "/")), "__init__.py"
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
elif python_version == "cpython2":
|
elif python_version == "cpython2":
|
||||||
paths = [
|
paths = [
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python2\\.[0-9]/dist-packages",
|
"/usr/lib/python2\\.[0-9]/dist-packages",
|
||||||
module.replace(".", "/"),
|
re.escape(module.replace(".", "/")),
|
||||||
"__init__.py",
|
"__init__.py",
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python2\\.[0-9]/dist-packages",
|
"/usr/lib/python2\\.[0-9]/dist-packages",
|
||||||
module.replace(".", "/") + ".py",
|
re.escape(module.replace(".", "/")) + ".py",
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/python2.\\.[0-9]/lib-dynload",
|
"/usr/lib/python2.\\.[0-9]/lib-dynload",
|
||||||
module.replace(".", "/") + ".so",
|
re.escape(module.replace(".", "/")) + ".so",
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
elif python_version == "pypy":
|
elif python_version == "pypy":
|
||||||
paths = [
|
paths = [
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/pypy/dist-packages", module.replace(".", "/"), "__init__.py"
|
"/usr/lib/pypy/dist-packages", re.escape(module.replace(".", "/")), "__init__.py"
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/pypy/dist-packages", module.replace(".", "/") + ".py"
|
"/usr/lib/pypy/dist-packages", re.escape(module.replace(".", "/")) + ".py"
|
||||||
),
|
),
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/lib/pypy/dist-packages",
|
"/usr/lib/pypy/dist-packages",
|
||||||
module.replace(".", "/") + "\\.pypy-.*\\.so",
|
re.escape(module.replace(".", "/")) + "\\.pypy-.*\\.so",
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
|
@ -225,7 +226,7 @@ def resolve_pkg_config_req(apt_mgr, req):
|
||||||
)
|
)
|
||||||
if package is None:
|
if package is None:
|
||||||
package = apt_mgr.get_package_for_paths(
|
package = apt_mgr.get_package_for_paths(
|
||||||
[posixpath.join("/usr/lib", ".*", "pkgconfig", req.module + ".pc")],
|
[posixpath.join("/usr/lib", ".*", "pkgconfig", re.escape(req.module) + "\\.pc")],
|
||||||
regex=True,
|
regex=True,
|
||||||
)
|
)
|
||||||
if package is not None:
|
if package is not None:
|
||||||
|
@ -246,7 +247,7 @@ def resolve_c_header_req(apt_mgr, req):
|
||||||
)
|
)
|
||||||
if package is None:
|
if package is None:
|
||||||
package = apt_mgr.get_package_for_paths(
|
package = apt_mgr.get_package_for_paths(
|
||||||
[posixpath.join("/usr/include", ".*", req.header)], regex=True
|
[posixpath.join("/usr/include", ".*", re.escape(req.header))], regex=True
|
||||||
)
|
)
|
||||||
if package is None:
|
if package is None:
|
||||||
return None
|
return None
|
||||||
|
@ -263,7 +264,7 @@ def resolve_js_runtime_req(apt_mgr, req):
|
||||||
|
|
||||||
|
|
||||||
def resolve_vala_package_req(apt_mgr, req):
|
def resolve_vala_package_req(apt_mgr, req):
|
||||||
path = "/usr/share/vala-[0-9.]+/vapi/%s.vapi" % req.package
|
path = "/usr/share/vala-[0-9.]+/vapi/%s\\.vapi" % re.escape(req.package)
|
||||||
package = apt_mgr.get_package_for_paths([path], regex=True)
|
package = apt_mgr.get_package_for_paths([path], regex=True)
|
||||||
if package is not None:
|
if package is not None:
|
||||||
return AptRequirement.simple(package)
|
return AptRequirement.simple(package)
|
||||||
|
@ -274,7 +275,7 @@ def resolve_ruby_gem_req(apt_mgr, req):
|
||||||
paths = [
|
paths = [
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
"/usr/share/rubygems-integration/all/"
|
"/usr/share/rubygems-integration/all/"
|
||||||
"specifications/%s-.*\\.gemspec" % req.gem
|
"specifications/%s-.*\\.gemspec" % re.escape(req.gem)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
package = apt_mgr.get_package_for_paths(paths, regex=True)
|
package = apt_mgr.get_package_for_paths(paths, regex=True)
|
||||||
|
@ -285,7 +286,7 @@ def resolve_ruby_gem_req(apt_mgr, req):
|
||||||
|
|
||||||
def resolve_go_package_req(apt_mgr, req):
|
def resolve_go_package_req(apt_mgr, req):
|
||||||
package = apt_mgr.get_package_for_paths(
|
package = apt_mgr.get_package_for_paths(
|
||||||
[posixpath.join("/usr/share/gocode/src", req.package, ".*")], regex=True
|
[posixpath.join("/usr/share/gocode/src", re.escape(req.package), ".*")], regex=True
|
||||||
)
|
)
|
||||||
if package is not None:
|
if package is not None:
|
||||||
return AptRequirement.simple(package)
|
return AptRequirement.simple(package)
|
||||||
|
@ -309,7 +310,7 @@ def resolve_php_class_req(apt_mgr, req):
|
||||||
|
|
||||||
|
|
||||||
def resolve_r_package_req(apt_mgr, req):
|
def resolve_r_package_req(apt_mgr, req):
|
||||||
paths = [posixpath.join("/usr/lib/R/site-library/.*/R/%s$" % req.package)]
|
paths = [posixpath.join("/usr/lib/R/site-library/.*/R/%s$" % re.escape(req.package))]
|
||||||
package = apt_mgr.get_package_for_paths(paths, regex=True)
|
package = apt_mgr.get_package_for_paths(paths, regex=True)
|
||||||
if package is not None:
|
if package is not None:
|
||||||
return AptRequirement.simple(package)
|
return AptRequirement.simple(package)
|
||||||
|
@ -318,9 +319,9 @@ def resolve_r_package_req(apt_mgr, req):
|
||||||
|
|
||||||
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" % req.package,
|
"/usr/share/nodejs/.*/node_modules/%s/package\\.json" % req.package,
|
||||||
"/usr/lib/nodejs/%s/package.json" % req.package,
|
"/usr/lib/nodejs/%s/package\\.json" % re.escape(req.package),
|
||||||
"/usr/share/nodejs/%s/package.json" % req.package,
|
"/usr/share/nodejs/%s/package\\.json" % re.escape(req.package),
|
||||||
]
|
]
|
||||||
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
||||||
if pkg_name is not None:
|
if pkg_name is not None:
|
||||||
|
@ -330,10 +331,10 @@ def resolve_node_package_req(apt_mgr, req):
|
||||||
|
|
||||||
def resolve_library_req(apt_mgr, req):
|
def resolve_library_req(apt_mgr, req):
|
||||||
paths = [
|
paths = [
|
||||||
posixpath.join("/usr/lib/lib%s.so$" % req.library),
|
posixpath.join("/usr/lib/lib%s.so$" % re.escape(req.library)),
|
||||||
posixpath.join("/usr/lib/.*/lib%s.so$" % req.library),
|
posixpath.join("/usr/lib/.*/lib%s.so$" % re.escape(req.library)),
|
||||||
posixpath.join("/usr/lib/lib%s.a$" % req.library),
|
posixpath.join("/usr/lib/lib%s.a$" % re.escape(req.library)),
|
||||||
posixpath.join("/usr/lib/.*/lib%s.a$" % req.library),
|
posixpath.join("/usr/lib/.*/lib%s.a$" % re.escape(req.library)),
|
||||||
]
|
]
|
||||||
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
||||||
if pkg_name is not None:
|
if pkg_name is not None:
|
||||||
|
@ -349,7 +350,7 @@ def resolve_ruby_file_req(apt_mgr, req):
|
||||||
paths = [
|
paths = [
|
||||||
posixpath.join(
|
posixpath.join(
|
||||||
r"/usr/share/rubygems-integration/all/gems/([^/]+)/"
|
r"/usr/share/rubygems-integration/all/gems/([^/]+)/"
|
||||||
"lib/%s.rb" % req.filename
|
"lib/%s\\.rb" % re.escape(req.filename)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
||||||
|
@ -379,7 +380,7 @@ def resolve_xml_entity_req(apt_mgr, req):
|
||||||
|
|
||||||
def resolve_sprockets_file_req(apt_mgr, req):
|
def resolve_sprockets_file_req(apt_mgr, req):
|
||||||
if req.content_type == "application/javascript":
|
if req.content_type == "application/javascript":
|
||||||
path = "/usr/share/.*/app/assets/javascripts/%s.js$" % req.name
|
path = "/usr/share/.*/app/assets/javascripts/%s\\.js$" % re.escape(req.name)
|
||||||
else:
|
else:
|
||||||
logging.warning("unable to handle content type %s", req.content_type)
|
logging.warning("unable to handle content type %s", req.content_type)
|
||||||
return None
|
return None
|
||||||
|
@ -409,7 +410,7 @@ def resolve_java_class_req(apt_mgr, req):
|
||||||
|
|
||||||
|
|
||||||
def resolve_haskell_package_req(apt_mgr, req):
|
def resolve_haskell_package_req(apt_mgr, req):
|
||||||
path = "/var/lib/ghc/package.conf.d/%s-.*.conf" % req.deps[0][0]
|
path = "/var/lib/ghc/package\\.conf\\.d/%s-.*\\.conf" % re.escape(req.deps[0][0])
|
||||||
pkg_name = apt_mgr.get_package_for_paths([path], regex=True)
|
pkg_name = apt_mgr.get_package_for_paths([path], regex=True)
|
||||||
if pkg_name is not None:
|
if pkg_name is not None:
|
||||||
return AptRequirement.simple(pkg_name)
|
return AptRequirement.simple(pkg_name)
|
||||||
|
@ -453,7 +454,7 @@ def resolve_gnome_common_req(apt_mgr, req):
|
||||||
|
|
||||||
|
|
||||||
def resolve_jdk_file_req(apt_mgr, req):
|
def resolve_jdk_file_req(apt_mgr, req):
|
||||||
path = req.jdk_path + ".*/" + req.filename
|
path = re.escape(req.jdk_path) + ".*/" + re.escape(req.filename)
|
||||||
pkg_name = apt_mgr.get_package_for_paths([path], regex=True)
|
pkg_name = apt_mgr.get_package_for_paths([path], regex=True)
|
||||||
if pkg_name is not None:
|
if pkg_name is not None:
|
||||||
return AptRequirement.simple(pkg_name)
|
return AptRequirement.simple(pkg_name)
|
||||||
|
@ -544,7 +545,7 @@ def resolve_python_package_req(apt_mgr, req):
|
||||||
|
|
||||||
def resolve_cargo_crate_req(apt_mgr, req):
|
def resolve_cargo_crate_req(apt_mgr, req):
|
||||||
paths = [
|
paths = [
|
||||||
'/usr/share/cargo/registry/%s-[0-9]+.*/Cargo.toml' % req.crate]
|
'/usr/share/cargo/registry/%s-[0-9]+.*/Cargo.toml' % re.escape(req.crate)]
|
||||||
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
pkg_name = apt_mgr.get_package_for_paths(paths, regex=True)
|
||||||
if pkg_name is None:
|
if pkg_name is None:
|
||||||
return None
|
return None
|
||||||
|
|
Loading…
Add table
Reference in a new issue