diff --git a/.build_register b/.build_register index 832c192..d540e44 100644 --- a/.build_register +++ b/.build_register @@ -1 +1 @@ -1.11.0 17 +1.11.0 41 diff --git a/main.go b/main.go index b382177..3c8cf0a 100644 --- a/main.go +++ b/main.go @@ -382,12 +382,16 @@ func isReaderTerminal(r io.Reader) bool { } 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() 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 { return len(name) > 0 && name[0] == '_' }) @@ -395,25 +399,25 @@ func registerLocalFunctions(ctx expr.ExprContext) { return } - ctrlFunc := func(ctx expr.ExprContext, name string, args []any) (result any, err error) { - varName, _ := args[0].(string) + ctrlFunc := func(ctx expr.ExprContext, name string, args map[string]any) (result any, err error) { + varName, _ := args[devParamProp].(string) if len(args) == 1 { result = expr.GlobalCtrlGet(varName) } else { - result = expr.GlobalCtrlSet(varName, args[1]) + result = expr.GlobalCtrlSet(varName, args[expr.ParamValue]) } 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 ok bool - if varName, ok = args[0].(string); !ok { - err = expr.ErrExpectedGot(name, expr.TypeString, args[0]) + if varName, ok = args[expr.ParamName].(string); !ok { + err = expr.ErrExpectedGot(name, expr.TypeString, args[expr.ParamName]) return } - if value, ok = args[1].(string); !ok { - err = expr.ErrExpectedGot(name, expr.TypeString, args[1]) + if value, ok = args[expr.ParamValue].(string); !ok { + err = expr.ErrExpectedGot(name, expr.TypeString, args[expr.ParamValue]) return } if err = os.Setenv(varName, value); err == nil { @@ -422,11 +426,11 @@ func registerLocalFunctions(ctx expr.ExprContext) { 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 ok bool - if varName, ok = args[0].(string); !ok { - err = expr.ErrExpectedGot(name, expr.TypeString, args[0]) + if varName, ok = args[expr.ParamName].(string); !ok { + err = expr.ErrExpectedGot(name, expr.TypeString, args[expr.ParamName]) return } @@ -439,7 +443,7 @@ func registerLocalFunctions(ctx expr.ExprContext) { ctx.RegisterFunc("about", expr.NewGolangFunctor(aboutFunc), expr.TypeString, []expr.ExprFuncParam{}) ctx.RegisterFunc("ctrlList", expr.NewGolangFunctor(ctrlListFunc), expr.TypeListOfStrings, []expr.ExprFuncParam{}) ctx.RegisterFunc("ctrl", expr.NewGolangFunctor(ctrlFunc), expr.TypeAny, []expr.ExprFuncParam{ - expr.NewFuncParam("prop"), + expr.NewFuncParam(devParamProp), expr.NewFuncParamFlag(expr.ParamValue, expr.PfOptional), }) ctx.RegisterFunc("envSet", expr.NewGolangFunctor(envSetFunc), expr.TypeString, []expr.ExprFuncParam{