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