From a71a5563bd2148a566879d537c5d6249332799e7 Mon Sep 17 00:00:00 2001 From: Nicolas Paul Date: Wed, 31 May 2023 03:00:53 +0200 Subject: Add Bazaar lib Signed-off-by: Nicolas Paul --- pkg/config/lib/bzr/bzr.go | 32 ++++++++++++++++++++++++++++++++ pkg/config/lib/bzr/bzr.star | 8 ++++++++ pkg/config/starlark.go | 3 +++ 3 files changed, 43 insertions(+) create mode 100644 pkg/config/lib/bzr/bzr.go create mode 100644 pkg/config/lib/bzr/bzr.star diff --git a/pkg/config/lib/bzr/bzr.go b/pkg/config/lib/bzr/bzr.go new file mode 100644 index 0000000..81b0177 --- /dev/null +++ b/pkg/config/lib/bzr/bzr.go @@ -0,0 +1,32 @@ +package bzr + +import ( + _ "embed" + "go.nc0.fr/svgu/pkg/config" + "go.starlark.net/starlark" + "go.starlark.net/starlarkstruct" + "sync" +) + +var ( + once = sync.Once{} + bzr = starlark.StringDict{} + //go:embed bzr.star + bzrFile string + bzrErr error +) + +// LoadBzrModule loads the Bazaar module. +func LoadBzrModule(t *starlark.Thread) (starlark.StringDict, error) { + once.Do(func() { + env := starlark.StringDict{ + "module": starlark.NewBuiltin("module", + config.InternModule), + "make_module": starlark.NewBuiltin("mod", + starlarkstruct.MakeModule), + } + bzr, bzrErr = starlark.ExecFile(t, "bzr.star", bzrFile, env) + }) + + return bzr, bzrErr +} diff --git a/pkg/config/lib/bzr/bzr.star b/pkg/config/lib/bzr/bzr.star new file mode 100644 index 0000000..afcc08a --- /dev/null +++ b/pkg/config/lib/bzr/bzr.star @@ -0,0 +1,8 @@ +# Utilities to index Go modules hosted on Bazaar repositories. + +_BZR = "bzr" + +bzr = make_module( + "bzr", + BZR = _BZR, +) diff --git a/pkg/config/starlark.go b/pkg/config/starlark.go index c58a800..986d39a 100644 --- a/pkg/config/starlark.go +++ b/pkg/config/starlark.go @@ -2,6 +2,7 @@ package config import ( "fmt" + "go.nc0.fr/svgu/pkg/config/lib/bzr" "go.nc0.fr/svgu/pkg/config/lib/fossil" "go.nc0.fr/svgu/pkg/config/lib/git" "go.nc0.fr/svgu/pkg/config/lib/hg" @@ -47,6 +48,8 @@ func load(t *starlark.Thread, module string) (starlark.StringDict, error) { return svn.LoadSvnModule(t) case "fossil.star": // fossil return fossil.LoadFossilModule(t) + case "bzr.star": // bazaar + return bzr.LoadBzrModule(t) default: return nil, fmt.Errorf("unknown module %q", module) } -- cgit v1.2.3