summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-09-26 07:59:13 +0000
committerArne Juul <arnej@yahooinc.com>2022-09-26 07:59:13 +0000
commit797bdeb2c071dd4742bbbfd51cac5adf8f16e110 (patch)
tree3b1a67a6d9e465e39a364b3848d4441e8762ecfc /client
parent2a0918651abbd0f5e62ff481647ba83f1e1e9109 (diff)
rename GetOutputFromProgram -> BackTicks
Diffstat (limited to 'client')
-rw-r--r--client/go/cmd/clusterstate/detect_model.go9
-rw-r--r--client/go/cmd/deploy/urls.go3
-rw-r--r--client/go/util/run_cmd.go20
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