summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorEirik Nygaard <eirik.nygaard@yahooinc.com>2022-03-11 13:27:51 +0100
committerEirik Nygaard <eirik.nygaard@yahooinc.com>2022-03-11 13:29:03 +0100
commite7aeb65690f6cba7f97ccced5f14fde32530aa64 (patch)
tree71d85401aea8eff232f6aca09d64d0a4b4b775a1 /client
parentd74d67b4454880c5629967d31ec28d3aadea2da6 (diff)
Remove spinner if we are running under screwdriver
Diffstat (limited to 'client')
-rw-r--r--client/go/util/spinner.go18
1 files changed, 15 insertions, 3 deletions
diff --git a/client/go/util/spinner.go b/client/go/util/spinner.go
index 8341ce55303..52ea133f6f7 100644
--- a/client/go/util/spinner.go
+++ b/client/go/util/spinner.go
@@ -24,20 +24,32 @@ func Spinner(w io.Writer, message string, fn func() error) error {
}
s.Prefix = message
s.FinalMSG = "\r" + message + "done\n"
- isTerminal := isTerminal(w)
- if isTerminal { // spinner package does this check too, but it's hardcoded to check os.Stdout :(
+ useSpinner := useSpinner(w)
+ if useSpinner { // spinner package does this check too, but it's hardcoded to check os.Stdout :(
s.Start()
}
err := fn()
if err != nil {
s.FinalMSG = "\r" + message + "failed\n"
}
- if isTerminal {
+ if useSpinner {
s.Stop()
}
return err
}
+func useSpinner(w io.Writer) bool {
+ if !isTerminal(w) {
+ return false
+ }
+ // Explicitly disable spinner for Screwdriver. It emulates a tty but
+ // \r result in a newline, and output gets truncated.
+ if _, screwdriver := os.LookupEnv("SCREWDRIVER"); screwdriver {
+ return false
+ }
+ return true
+}
+
func isTerminal(w io.Writer) bool {
f, ok := w.(*os.File)
return ok && isatty.IsTerminal(f.Fd())