github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/fn_pt_name.go (about) 1 package funcs 2 3 import ( 4 "fmt" 5 6 "github.com/GuanceCloud/platypus/pkg/ast" 7 "github.com/GuanceCloud/platypus/pkg/engine/runtime" 8 "github.com/GuanceCloud/platypus/pkg/errchain" 9 ) 10 11 func PtNameChecking(ctx *runtime.Task, funcExpr *ast.CallExpr) *errchain.PlError { 12 if len(funcExpr.Param) > 1 { 13 return runtime.NewRunError(ctx, fmt.Sprintf( 14 "func `%s' can have at most one parameter", funcExpr.Name), funcExpr.NamePos) 15 } 16 17 return nil 18 } 19 20 func PtName(ctx *runtime.Task, funcExpr *ast.CallExpr) *errchain.PlError { 21 if len(funcExpr.Param) == 1 { 22 if val, _, err := runtime.RunStmt(ctx, funcExpr.Param[0]); err == nil { 23 if val, ok := val.(string); ok { 24 _ = setPtName(ctx.InData(), val) 25 } 26 } 27 } 28 29 ctx.Regs.ReturnAppend(getPtName(ctx.InData()), ast.String) 30 return nil 31 }