Add utils.ver_cmp() builtin
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2023-06-22 14:53:42 -07:00
parent 228bf59c85
commit a30d805f9b
5 changed files with 31 additions and 1 deletions

View File

@@ -34,7 +34,7 @@ func newStarlarkReader(r io.Reader) starlarkReader {
"read_all": starlark.NewBuiltin("reader.read_all", sr.readAll),
"read_all_string": starlark.NewBuiltin("reader.read_all_string", sr.readAllString),
"read_json": starlark.NewBuiltin("reader.read_json", sr.readJSON),
"read_msgpack": starlark.NewBuiltin("read_msgpack", sr.readMsgpack),
"read_msgpack": starlark.NewBuiltin("reader.read_msgpack", sr.readMsgpack),
"close": starlark.NewBuiltin("reader.close", sr.closeReader),
})

View File

@@ -43,5 +43,6 @@ func Register(sd starlark.StringDict, opts *Options) {
sd["updater"] = updaterModule(opts.Config)
sd["log"] = logModule(opts.Name)
sd["json"] = starlarkjson.Module
sd["utils"] = utilsModule
sd["register_webhook"] = registerWebhook(opts.Mux, opts.Config, opts.Name)
}

View File

@@ -0,0 +1,23 @@
package builtins
import (
"go.elara.ws/vercmp"
"go.starlark.net/starlark"
"go.starlark.net/starlarkstruct"
)
var utilsModule = &starlarkstruct.Module{
Name: "utils",
Members: starlark.StringDict{
"ver_cmp": starlark.NewBuiltin("utils.ver_cmp", utilsVerCmp),
},
}
func utilsVerCmp(thread *starlark.Thread, b *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error) {
var v1, v2 string
err := starlark.UnpackArgs("utils.ver_cmp", args, kwargs, "v1", &v1, "v2", &v2)
if err != nil {
return nil, err
}
return starlark.MakeInt(vercmp.Compare(v1, v2)), nil
}