From e072d87a7d6db5bcea170e771618307efb1f5672 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 8 Jan 2022 11:47:26 +0800 Subject: [PATCH] =?UTF-8?q?xiang=20run=20=E6=94=AF=E6=8C=81JSON=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E6=95=B0=E6=8D=AE=E8=BE=93=E5=85=A5=20::?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/run.go | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/cmd/run.go b/cmd/run.go index 5b91a08b..5e934725 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -2,8 +2,10 @@ package cmd import ( "fmt" + "strings" "github.com/fatih/color" + jsoniter "github.com/json-iterator/go" "github.com/spf13/cobra" "github.com/yaoapp/gou" "github.com/yaoapp/kun/utils" @@ -34,8 +36,27 @@ var runCmd = &cobra.Command{ if i == 0 { continue } - pargs = append(pargs, arg) - fmt.Println(color.WhiteString("args[%d]: %s", i-1, arg)) + + // 解析参数 + if strings.HasPrefix(arg, "::") { + arg := strings.TrimPrefix(arg, "::") + var v interface{} + err := jsoniter.Unmarshal([]byte(arg), &v) + if err != nil { + fmt.Println(color.RedString("参数错误: %s", err.Error())) + return + } + pargs = append(pargs, v) + fmt.Println(color.WhiteString("args[%d]: %s", i-1, arg)) + } else if strings.HasPrefix(arg, "\\::") { + arg := "::" + strings.TrimPrefix(arg, "\\::") + pargs = append(pargs, arg) + fmt.Println(color.WhiteString("args[%d]: %s", i-1, arg)) + } else { + pargs = append(pargs, arg) + fmt.Println(color.WhiteString("args[%d]: %s", i-1, arg)) + } + } process := gou.NewProcess(name, pargs...)