Add utils.ver_cmp() builtin
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -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),
|
||||
})
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
23
internal/builtins/utils.go
Normal file
23
internal/builtins/utils.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user