diff options
| author | Nicolas Paul <n@nc0.fr> | 2023-05-31 03:00:53 +0200 |
|---|---|---|
| committer | Nicolas Paul <n@nc0.fr> | 2023-05-31 03:00:53 +0200 |
| commit | a71a5563bd2148a566879d537c5d6249332799e7 (patch) | |
| tree | 50f171fd0c10382959f19ea1e5b1c42c3825140f /pkg/config/lib/bzr/bzr.go | |
| parent | 733499d41f3382fb7aa349bd038d4d9c9a00dc28 (diff) | |
Add Bazaar lib
Signed-off-by: Nicolas Paul <n@nc0.fr>
Diffstat (limited to 'pkg/config/lib/bzr/bzr.go')
| -rw-r--r-- | pkg/config/lib/bzr/bzr.go | 32 |
1 files changed, 32 insertions, 0 deletions
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 +} |
