changed golang bind
This commit is contained in:
parent
279991962d
commit
e30d90befb
@ -1 +1 @@
|
||||
1.11.0 17
|
||||
1.11.0 41
|
||||
|
32
main.go
32
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{
|
||||
|
Loading…
Reference in New Issue
Block a user