changed golang bind

This commit is contained in:
Celestino Amoroso 2024-09-14 07:02:19 +02:00
parent 279991962d
commit e30d90befb
2 changed files with 19 additions and 15 deletions

View File

@ -1 +1 @@
1.11.0 17 1.11.0 41

32
main.go
View File

@ -382,12 +382,16 @@ func isReaderTerminal(r io.Reader) bool {
} }
func registerLocalFunctions(ctx expr.ExprContext) { func registerLocalFunctions(ctx expr.ExprContext) {
aboutFunc := func(ctx expr.ExprContext, name string, args []any) (result any, err error) { const (
devParamProp = "prop"
)
aboutFunc := func(ctx expr.ExprContext, name string, args map[string]any) (result any, err error) {
result = about() result = about()
return return
} }
ctrlListFunc := func(ctx expr.ExprContext, name string, args []any) (result any, err error) { ctrlListFunc := func(ctx expr.ExprContext, name string, args map[string]any) (result any, err error) {
vars := ctx.EnumVars(func(name string) bool { vars := ctx.EnumVars(func(name string) bool {
return len(name) > 0 && name[0] == '_' return len(name) > 0 && name[0] == '_'
}) })
@ -395,25 +399,25 @@ func registerLocalFunctions(ctx expr.ExprContext) {
return return
} }
ctrlFunc := func(ctx expr.ExprContext, name string, args []any) (result any, err error) { ctrlFunc := func(ctx expr.ExprContext, name string, args map[string]any) (result any, err error) {
varName, _ := args[0].(string) varName, _ := args[devParamProp].(string)
if len(args) == 1 { if len(args) == 1 {
result = expr.GlobalCtrlGet(varName) result = expr.GlobalCtrlGet(varName)
} else { } else {
result = expr.GlobalCtrlSet(varName, args[1]) result = expr.GlobalCtrlSet(varName, args[expr.ParamValue])
} }
return return
} }
envSetFunc := func(ctx expr.ExprContext, name string, args []any) (result any, err error) { envSetFunc := func(ctx expr.ExprContext, name string, args map[string]any) (result any, err error) {
var varName, value string var varName, value string
var ok bool var ok bool
if varName, ok = args[0].(string); !ok { if varName, ok = args[expr.ParamName].(string); !ok {
err = expr.ErrExpectedGot(name, expr.TypeString, args[0]) err = expr.ErrExpectedGot(name, expr.TypeString, args[expr.ParamName])
return return
} }
if value, ok = args[1].(string); !ok { if value, ok = args[expr.ParamValue].(string); !ok {
err = expr.ErrExpectedGot(name, expr.TypeString, args[1]) err = expr.ErrExpectedGot(name, expr.TypeString, args[expr.ParamValue])
return return
} }
if err = os.Setenv(varName, value); err == nil { if err = os.Setenv(varName, value); err == nil {
@ -422,11 +426,11 @@ func registerLocalFunctions(ctx expr.ExprContext) {
return return
} }
envGetFunc := func(ctx expr.ExprContext, name string, args []any) (result any, err error) { envGetFunc := func(ctx expr.ExprContext, name string, args map[string]any) (result any, err error) {
var varName string var varName string
var ok bool var ok bool
if varName, ok = args[0].(string); !ok { if varName, ok = args[expr.ParamName].(string); !ok {
err = expr.ErrExpectedGot(name, expr.TypeString, args[0]) err = expr.ErrExpectedGot(name, expr.TypeString, args[expr.ParamName])
return return
} }
@ -439,7 +443,7 @@ func registerLocalFunctions(ctx expr.ExprContext) {
ctx.RegisterFunc("about", expr.NewGolangFunctor(aboutFunc), expr.TypeString, []expr.ExprFuncParam{}) ctx.RegisterFunc("about", expr.NewGolangFunctor(aboutFunc), expr.TypeString, []expr.ExprFuncParam{})
ctx.RegisterFunc("ctrlList", expr.NewGolangFunctor(ctrlListFunc), expr.TypeListOfStrings, []expr.ExprFuncParam{}) ctx.RegisterFunc("ctrlList", expr.NewGolangFunctor(ctrlListFunc), expr.TypeListOfStrings, []expr.ExprFuncParam{})
ctx.RegisterFunc("ctrl", expr.NewGolangFunctor(ctrlFunc), expr.TypeAny, []expr.ExprFuncParam{ ctx.RegisterFunc("ctrl", expr.NewGolangFunctor(ctrlFunc), expr.TypeAny, []expr.ExprFuncParam{
expr.NewFuncParam("prop"), expr.NewFuncParam(devParamProp),
expr.NewFuncParamFlag(expr.ParamValue, expr.PfOptional), expr.NewFuncParamFlag(expr.ParamValue, expr.PfOptional),
}) })
ctx.RegisterFunc("envSet", expr.NewGolangFunctor(envSetFunc), expr.TypeString, []expr.ExprFuncParam{ ctx.RegisterFunc("envSet", expr.NewGolangFunctor(envSetFunc), expr.TypeString, []expr.ExprFuncParam{