summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-09-29 09:33:53 +0200
committerMartin Polden <mpolden@mpolden.no>2021-09-29 10:27:42 +0200
commit0857c4ce82cc39aafc1cccecc6bba84cb69933d7 (patch)
tree4d00765e15b4691eefa588f700d8443cfb3878ab
parent16977143c48117d254c548e7f94968976f54a72c (diff)
Add quiet flag
-rw-r--r--client/go/cmd/config_test.go2
-rw-r--r--client/go/cmd/root.go16
2 files changed, 14 insertions, 4 deletions
diff --git a/client/go/cmd/config_test.go b/client/go/cmd/config_test.go
index 7f7bdbb3edd..0e74e53c5e5 100644
--- a/client/go/cmd/config_test.go
+++ b/client/go/cmd/config_test.go
@@ -24,7 +24,7 @@ func TestConfig(t *testing.T) {
assertConfigCommand(t, "", homeDir, "config", "set", "application", "t1.a1.i1")
assertConfigCommand(t, "application = t1.a1.i1\n", homeDir, "config", "get", "application")
- assertConfigCommand(t, "application = t1.a1.i1\ncolor = auto\ntarget = https://127.0.0.1\nwait = 0\n", homeDir, "config", "get")
+ assertConfigCommand(t, "application = t1.a1.i1\ncolor = auto\nquiet = false\ntarget = https://127.0.0.1\nwait = 0\n", homeDir, "config", "get")
assertConfigCommand(t, "", homeDir, "config", "set", "wait", "60")
assertConfigCommandErr(t, "wait option must be an integer >= 0, got \"foo\"\n", homeDir, "config", "set", "wait", "foo")
diff --git a/client/go/cmd/root.go b/client/go/cmd/root.go
index cd8427c3ac6..7fe704e4918 100644
--- a/client/go/cmd/root.go
+++ b/client/go/cmd/root.go
@@ -6,6 +6,7 @@ package cmd
import (
"fmt"
+ "io/ioutil"
"log"
"os"
@@ -36,6 +37,7 @@ Vespa documentation: https://docs.vespa.ai`,
applicationArg string
waitSecsArg int
colorArg string
+ quietArg bool
color = aurora.NewAurora(false)
stdout = colorable.NewColorableStdout()
@@ -47,17 +49,23 @@ const (
targetFlag = "target"
waitFlag = "wait"
colorFlag = "color"
+ quietFlag = "quiet"
)
func isTerminal() bool {
- file, ok := stdout.(*os.File)
- if ok {
- return isatty.IsTerminal(file.Fd())
+ if f, ok := stdout.(*os.File); ok {
+ return isatty.IsTerminal(f.Fd())
+ }
+ if f, ok := stderr.(*os.File); ok {
+ return isatty.IsTerminal(f.Fd())
}
return false
}
func configureOutput() {
+ if quietArg {
+ stdout = ioutil.Discard
+ }
log.SetFlags(0) // No timestamps
log.SetOutput(stdout)
@@ -88,10 +96,12 @@ func init() {
rootCmd.PersistentFlags().StringVarP(&applicationArg, applicationFlag, "a", "", "The application to manage")
rootCmd.PersistentFlags().IntVarP(&waitSecsArg, waitFlag, "w", 0, "Number of seconds to wait for a service to become ready")
rootCmd.PersistentFlags().StringVarP(&colorArg, colorFlag, "c", "auto", "Whether to use colors in output. Can be \"auto\", \"never\" or \"always\"")
+ rootCmd.PersistentFlags().BoolVarP(&quietArg, quietFlag, "q", false, "Quiet mode. Only errors are printed.")
bindFlagToConfig(targetFlag, rootCmd)
bindFlagToConfig(applicationFlag, rootCmd)
bindFlagToConfig(waitFlag, rootCmd)
bindFlagToConfig(colorFlag, rootCmd)
+ bindFlagToConfig(quietFlag, rootCmd)
}
// Execute executes the root command.