diff options
author | Arne Juul <arnej@yahooinc.com> | 2022-09-26 07:59:13 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2022-09-26 07:59:13 +0000 |
commit | 797bdeb2c071dd4742bbbfd51cac5adf8f16e110 (patch) | |
tree | 3b1a67a6d9e465e39a364b3848d4441e8762ecfc /client | |
parent | 2a0918651abbd0f5e62ff481647ba83f1e1e9109 (diff) |
rename GetOutputFromProgram -> BackTicks
Diffstat (limited to 'client')
-rw-r--r-- | client/go/cmd/clusterstate/detect_model.go | 9 | ||||
-rw-r--r-- | client/go/cmd/deploy/urls.go | 3 | ||||
-rw-r--r-- | client/go/util/run_cmd.go | 20 |
3 files changed, 25 insertions, 7 deletions
diff --git a/client/go/cmd/clusterstate/detect_model.go b/client/go/cmd/clusterstate/detect_model.go index 41bb602559b..d1b2bd80d66 100644 --- a/client/go/cmd/clusterstate/detect_model.go +++ b/client/go/cmd/clusterstate/detect_model.go @@ -17,7 +17,8 @@ func getConfigServerHosts(s string) []string { if s != "" { return []string{s} } - got, err := util.GetOutputFromProgram(vespa.FindHome()+"/bin/vespa-print-default", "configservers") + backticks := util.BackTicksForwardStderr + got, err := backticks.Run(vespa.FindHome()+"/bin/vespa-print-default", "configservers") res := strings.Fields(got) if err != nil || len(res) < 1 { panic("bad configservers: " + got) @@ -30,7 +31,8 @@ func getConfigServerPort(i int) int { if i > 0 { return i } - got, err := util.GetOutputFromProgram(vespa.FindHome()+"/bin/vespa-print-default", "configserver_rpc_port") + backticks := util.BackTicksForwardStderr + got, err := backticks.Run(vespa.FindHome()+"/bin/vespa-print-default", "configserver_rpc_port") if err == nil { i, err = strconv.Atoi(strings.TrimSpace(got)) } @@ -53,7 +55,8 @@ func detectModel(opts *Options) *VespaModelConfig { "-p", strconv.Itoa(cfgPort), "-s", cfgHost, } - data, err := util.GetOutputFromProgram(vespa.FindHome()+"/bin/vespa-get-config", args...) + backticks := util.BackTicksForwardStderr + data, err := backticks.Run(vespa.FindHome()+"/bin/vespa-get-config", args...) parsed := parseModelConfig(data) if err == nil && parsed != nil { return parsed diff --git a/client/go/cmd/deploy/urls.go b/client/go/cmd/deploy/urls.go index 93235121122..b2a1f622490 100644 --- a/client/go/cmd/deploy/urls.go +++ b/client/go/cmd/deploy/urls.go @@ -28,7 +28,8 @@ func makeConfigsourceUrls(opts *Options) []string { var results = make([]string, 0, 3) if opts.ServerHost == "" { home := vespa.FindHome() - configsources, _ := util.GetOutputFromProgram(home+"/bin/vespa-print-default", "configservers_http") + backticks := util.BackTicksForwardStderr + configsources, _ := backticks.Run(home+"/bin/vespa-print-default", "configservers_http") for _, src := range strings.Split(configsources, "\n") { colonParts := strings.Split(src, ":") if len(colonParts) > 1 { diff --git a/client/go/util/run_cmd.go b/client/go/util/run_cmd.go index fe6ae5d297f..0b66bc66ee9 100644 --- a/client/go/util/run_cmd.go +++ b/client/go/util/run_cmd.go @@ -12,12 +12,26 @@ import ( "github.com/vespa-engine/vespa/client/go/trace" ) -// this is basically shell backticks: -func GetOutputFromProgram(program string, args ...string) (string, error) { +type BackTicks int + +const ( + BackTicksWithStderr BackTicks = iota + BackTicksIgnoreStderr + BackTicksForwardStderr +) + +func (b BackTicks) Run(program string, args ...string) (string, error) { cmd := exec.Command(program, args...) var out bytes.Buffer cmd.Stdout = &out - cmd.Stderr = os.Stderr + switch b { + case BackTicksWithStderr: + cmd.Stderr = &out + case BackTicksIgnoreStderr: + cmd.Stderr = nil + case BackTicksForwardStderr: + cmd.Stderr = os.Stderr + } trace.Debug("running command:", program, strings.Join(args, " ")) err := cmd.Run() return out.String(), err |