summaryrefslogtreecommitdiff
path: root/pkg/config/lib/bzr/bzr.go
diff options
context:
space:
mode:
authorNicolas Paul <n@nc0.fr>2023-05-31 03:00:53 +0200
committerNicolas Paul <n@nc0.fr>2023-05-31 03:00:53 +0200
commita71a5563bd2148a566879d537c5d6249332799e7 (patch)
tree50f171fd0c10382959f19ea1e5b1c42c3825140f /pkg/config/lib/bzr/bzr.go
parent733499d41f3382fb7aa349bd038d4d9c9a00dc28 (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.go32
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
+}