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) {
|
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{
|
||||||
|
Loading…
Reference in New Issue
Block a user