mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
recipetool: Handle several go-import tags in go resolver
When dynamically resolving go modules, the HTML page may contain several go-import meta tags. We must handle all and pick the correct one based on the module name. An example for such a behaviour is gonum.org/v1/gonum: <meta name="go-import" content="gonum.org/v1/exp git https://github.com/gonum/exp"> <meta name="go-import" content="gonum.org/v1/gonum git https://github.com/gonum/gonum"> <meta name="go-import" content="gonum.org/v1/hdf5 git https://github.com/gonum/hdf5"> <meta name="go-import" content="gonum.org/v1/netlib git https://github.com/gonum/netlib"> <meta name="go-import" content="gonum.org/v1/plot git https://github.com/gonum/plot"> <meta name="go-import" content="gonum.org/v1/tools git https://github.com/gonum/tools"> (From OE-Core rev: 9c36a61e29359067165bddc7f2accdf2c4c8a761) Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
e4c3483ecf
commit
8219eefdd8
|
@ -225,7 +225,7 @@ class GoRecipeHandler(RecipeHandler):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.__srv = []
|
self.__srv = {}
|
||||||
|
|
||||||
def handle_starttag(self, tag, attrs):
|
def handle_starttag(self, tag, attrs):
|
||||||
if tag == 'meta' and list(
|
if tag == 'meta' and list(
|
||||||
|
@ -233,19 +233,14 @@ class GoRecipeHandler(RecipeHandler):
|
||||||
content = list(
|
content = list(
|
||||||
filter(lambda a: (a[0] == 'content'), attrs))
|
filter(lambda a: (a[0] == 'content'), attrs))
|
||||||
if content:
|
if content:
|
||||||
self.__srv = content[0][1].split()
|
srv = content[0][1].split()
|
||||||
|
self.__srv[srv[0]] = srv
|
||||||
|
|
||||||
@property
|
def go_import(self, modulepath):
|
||||||
def import_prefix(self):
|
if modulepath in self.__srv:
|
||||||
return self.__srv[0] if len(self.__srv) else None
|
srv = self.__srv[modulepath]
|
||||||
|
return GoImport(srv[0], srv[1], srv[2], None)
|
||||||
@property
|
return None
|
||||||
def vcs(self):
|
|
||||||
return self.__srv[1] if len(self.__srv) else None
|
|
||||||
|
|
||||||
@property
|
|
||||||
def repourl(self):
|
|
||||||
return self.__srv[2] if len(self.__srv) else None
|
|
||||||
|
|
||||||
url = url.geturl() + "?go-get=1"
|
url = url.geturl() + "?go-get=1"
|
||||||
req = urllib.request.Request(url)
|
req = urllib.request.Request(url)
|
||||||
|
@ -265,7 +260,7 @@ class GoRecipeHandler(RecipeHandler):
|
||||||
parser.feed(body.decode('utf-8'))
|
parser.feed(body.decode('utf-8'))
|
||||||
parser.close()
|
parser.close()
|
||||||
|
|
||||||
return GoImport(parser.import_prefix, parser.vcs, parser.repourl, None)
|
return parser.go_import(modulepath)
|
||||||
|
|
||||||
def __resolve_from_golang_proxy(self, modulepath, version):
|
def __resolve_from_golang_proxy(self, modulepath, version):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user