diff options
author | Eirik Nygaard <eirik.nygaard@yahooinc.com> | 2022-03-11 13:27:51 +0100 |
---|---|---|
committer | Eirik Nygaard <eirik.nygaard@yahooinc.com> | 2022-03-11 13:29:03 +0100 |
commit | e7aeb65690f6cba7f97ccced5f14fde32530aa64 (patch) | |
tree | 71d85401aea8eff232f6aca09d64d0a4b4b775a1 /client | |
parent | d74d67b4454880c5629967d31ec28d3aadea2da6 (diff) |
Remove spinner if we are running under screwdriver
Diffstat (limited to 'client')
-rw-r--r-- | client/go/util/spinner.go | 18 |
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()) |