From 8fb6e261c42042250c0a1e5913f08eca362fe487 Mon Sep 17 00:00:00 2001 From: Willem Wyndham Date: Fri, 8 Sep 2023 16:19:13 -0400 Subject: [PATCH] feat: add google/shlex To properly parse CLI args from string --- cmd/soroban-rpc/internal/test/cli_test.go | 9 ++++++--- go.mod | 1 + go.sum | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cmd/soroban-rpc/internal/test/cli_test.go b/cmd/soroban-rpc/internal/test/cli_test.go index 776749298d..1d50df4d07 100644 --- a/cmd/soroban-rpc/internal/test/cli_test.go +++ b/cmd/soroban-rpc/internal/test/cli_test.go @@ -9,6 +9,7 @@ import ( "github.com/creachadair/jrpc2" "github.com/creachadair/jrpc2/jhttp" + "github.com/google/shlex" "github.com/stellar/go/keypair" "github.com/stellar/go/txnbuild" "github.com/stellar/go/xdr" @@ -45,14 +46,16 @@ func TestCLIContractDeployAndInvoke(t *testing.T) { } func assertCmd(t *testing.T, cmd string) string { - res := runCLICommand(cmd) + res := runCLICommand(t, cmd) require.NoError(t, res.Error, res.Cmd.Stderr) return res.Stdout() } -func runCLICommand(cmd string) *icmd.Result { +func runCLICommand(t *testing.T, cmd string) *icmd.Result { args := []string{"run", "-q", "--", "--vv"} - args = append(args, strings.Split(cmd, " ")...) + parsedArgs, err := shlex.Split(cmd) + require.NoError(t, err) + args = append(args, parsedArgs...) c := icmd.Command("cargo", args...) c.Env = append(os.Environ(), fmt.Sprintf("SOROBAN_RPC_URL=http://localhost:%d/", sorobanRPCPort), diff --git a/go.mod b/go.mod index 77b21daea7..44ebb67bd5 100644 --- a/go.mod +++ b/go.mod @@ -41,6 +41,7 @@ require ( github.com/go-gorp/gorp/v3 v3.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/go-cmp v0.5.9 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 github.com/hashicorp/hcl v1.0.0 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect diff --git a/go.sum b/go.sum index 15fab6fb87..688250854d 100644 --- a/go.sum +++ b/go.sum @@ -81,6 +81,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-querystring v0.0.0-20160401233042-9235644dd9e5 h1:oERTZ1buOUYlpmKaqlO5fYmz8cZ1rYu5DieJzF4ZVmU= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/gorilla/schema v1.1.0 h1:CamqUDOFUBqzrvxuz2vEwo8+SUdwsluFh7IlzJh30LY= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=