More go support.
This commit is contained in:
parent
ae9e30468a
commit
5b7cf25d14
3 changed files with 41 additions and 2 deletions
|
@ -42,6 +42,8 @@ from .requirements import (
|
||||||
OctavePackageRequirement,
|
OctavePackageRequirement,
|
||||||
PhpPackageRequirement,
|
PhpPackageRequirement,
|
||||||
MavenArtifactRequirement,
|
MavenArtifactRequirement,
|
||||||
|
GoRequirement,
|
||||||
|
GoPackageRequirement,
|
||||||
)
|
)
|
||||||
from .fix_build import run_with_build_fixers
|
from .fix_build import run_with_build_fixers
|
||||||
from .session import which
|
from .session import which
|
||||||
|
@ -1165,6 +1167,26 @@ class Golang(BuildSystem):
|
||||||
def clean(self, session, resolver, fixers):
|
def clean(self, session, resolver, fixers):
|
||||||
session.check_call(["go", "clean"])
|
session.check_call(["go", "clean"])
|
||||||
|
|
||||||
|
def get_declared_dependencies(self, session, fixers=None):
|
||||||
|
go_mod_path = os.path.join(self.path, 'go.mod')
|
||||||
|
if not os.path.exists(go_mod_path):
|
||||||
|
with open(go_mod_path, 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
parts = line.strip().split(' ')
|
||||||
|
if not parts:
|
||||||
|
continue
|
||||||
|
if parts[0] == 'go':
|
||||||
|
yield "build", GoRequirement(parts[1])
|
||||||
|
elif parts[0] == 'require':
|
||||||
|
yield "build", GoPackageRequirement(
|
||||||
|
parts[1], parts[2] if len(parts) > 2 else None)
|
||||||
|
elif parts[0] in ('module', 'exclude', 'replace'):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
logging.warning(
|
||||||
|
'Unknown directive %s in go.mod',
|
||||||
|
parts[0])
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def probe(cls, path):
|
def probe(cls, path):
|
||||||
if os.path.exists(os.path.join(path, 'go.mod')):
|
if os.path.exists(os.path.join(path, 'go.mod')):
|
||||||
|
|
|
@ -271,10 +271,21 @@ class RubyGemRequirement(Requirement):
|
||||||
class GoPackageRequirement(Requirement):
|
class GoPackageRequirement(Requirement):
|
||||||
|
|
||||||
package: str
|
package: str
|
||||||
|
version: Optional[str]
|
||||||
|
|
||||||
def __init__(self, package: str):
|
def __init__(self, package: str, version: Optional[str] = None):
|
||||||
super(GoPackageRequirement, self).__init__("go")
|
super(GoPackageRequirement, self).__init__("go-package")
|
||||||
self.package = package
|
self.package = package
|
||||||
|
self.version = version
|
||||||
|
|
||||||
|
|
||||||
|
class GoRequirement(Requirement):
|
||||||
|
|
||||||
|
version: Optional[str]
|
||||||
|
|
||||||
|
def __init__(self, version: Optional[str] = None):
|
||||||
|
super(GoPackageRequirement, self).__init__("go")
|
||||||
|
self.version = version
|
||||||
|
|
||||||
|
|
||||||
class DhAddonRequirement(Requirement):
|
class DhAddonRequirement(Requirement):
|
||||||
|
|
|
@ -39,6 +39,7 @@ from ..requirements import (
|
||||||
ValaPackageRequirement,
|
ValaPackageRequirement,
|
||||||
RubyGemRequirement,
|
RubyGemRequirement,
|
||||||
GoPackageRequirement,
|
GoPackageRequirement,
|
||||||
|
GoRequirement,
|
||||||
DhAddonRequirement,
|
DhAddonRequirement,
|
||||||
PhpClassRequirement,
|
PhpClassRequirement,
|
||||||
PhpPackageRequirement,
|
PhpPackageRequirement,
|
||||||
|
@ -306,6 +307,10 @@ def resolve_go_package_req(apt_mgr, req):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def resolve_go_req(apt_mgr, req):
|
||||||
|
return [AptRequirement.simple('golang-%s' % req.version)]
|
||||||
|
|
||||||
|
|
||||||
def resolve_dh_addon_req(apt_mgr, req):
|
def resolve_dh_addon_req(apt_mgr, req):
|
||||||
paths = [posixpath.join("/usr/share/perl5", req.path)]
|
paths = [posixpath.join("/usr/share/perl5", req.path)]
|
||||||
return find_reqs_simple(apt_mgr, paths)
|
return find_reqs_simple(apt_mgr, paths)
|
||||||
|
@ -556,6 +561,7 @@ APT_REQUIREMENT_RESOLVERS = [
|
||||||
(ValaPackageRequirement, resolve_vala_package_req),
|
(ValaPackageRequirement, resolve_vala_package_req),
|
||||||
(RubyGemRequirement, resolve_ruby_gem_req),
|
(RubyGemRequirement, resolve_ruby_gem_req),
|
||||||
(GoPackageRequirement, resolve_go_package_req),
|
(GoPackageRequirement, resolve_go_package_req),
|
||||||
|
(GoRequirement, resolve_go_req),
|
||||||
(DhAddonRequirement, resolve_dh_addon_req),
|
(DhAddonRequirement, resolve_dh_addon_req),
|
||||||
(PhpClassRequirement, resolve_php_class_req),
|
(PhpClassRequirement, resolve_php_class_req),
|
||||||
(PhpPackageRequirement, resolve_php_package_req),
|
(PhpPackageRequirement, resolve_php_package_req),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue