On Thu, 2024-04-11 at 12:10 +0200, Sven via lists.openembedded.org wrote: > From: Sven Schwermer <sven.schwer...@disruptive-technologies.com> > > 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"> > > Signed-off-by: Sven Schwermer <sven.schwer...@disruptive-technologies.com> > --- > scripts/lib/recipetool/create_go.py | 23 +++++++++-------------- > 1 file changed, 9 insertions(+), 14 deletions(-) > > diff --git a/scripts/lib/recipetool/create_go.py > b/scripts/lib/recipetool/create_go.py > index 0fb7115e26..a85a2f2786 100644 > --- a/scripts/lib/recipetool/create_go.py > +++ b/scripts/lib/recipetool/create_go.py > @@ -225,7 +225,7 @@ class GoRecipeHandler(RecipeHandler): > > def __init__(self): > super().__init__() > - self.__srv = [] > + self.__srv = {} > > def handle_starttag(self, tag, attrs): > if tag == 'meta' and list( > @@ -233,19 +233,14 @@ class GoRecipeHandler(RecipeHandler): > content = list( > filter(lambda a: (a[0] == 'content'), attrs)) > if content: > - self.__srv = content[0][1].split() > + srv = content[0][1].split() > + self.__srv[srv[0]] = srv > > - @property > - def import_prefix(self): > - return self.__srv[0] if len(self.__srv) else None > - > - @property > - 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 > + def go_import(self, modulepath): > + if modulepath in self.__srv: > + srv = self.__srv[modulepath] > + return GoImport(srv[0], srv[1], srv[2], None) > + return None > > url = url.geturl() + "?go-get=1" > req = urllib.request.Request(url) > @@ -265,7 +260,7 @@ class GoRecipeHandler(RecipeHandler): > parser.feed(body.decode('utf-8')) > 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): > """
Should we be extending "oe-selftest -r recipetool" with tests for something? Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#198127): https://lists.openembedded.org/g/openembedded-core/message/198127 Mute This Topic: https://lists.openembedded.org/mt/105459476/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-