From 0a19d350737c8fdcbbfa0d05131b12f9ea0ae496 Mon Sep 17 00:00:00 2001 From: Dex Date: Tue, 9 Mar 2021 11:42:38 -0600 Subject: [PATCH] hide spinner if interactive false (#328) * hide preflight spinner if interactive is false Co-authored-by: Salah Aldeen Al Saleh --- cmd/preflight/cli/run.go | 54 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/cmd/preflight/cli/run.go b/cmd/preflight/cli/run.go index 130198a1..878cd106 100644 --- a/cmd/preflight/cli/run.go +++ b/cmd/preflight/cli/run.go @@ -91,35 +91,37 @@ func runPreflights(v *viper.Viper, arg string) error { finishedCh := make(chan bool, 1) progressCh := make(chan interface{}, 0) // non-zero buffer will result in missed messages - s := spin.New() - go func() { - lastMsg := "" - for { - select { - case msg, ok := <-progressCh: - if !ok { - continue - } - switch msg := msg.(type) { - case error: - c := color.New(color.FgHiRed) - c.Println(fmt.Sprintf("%s\r * %v", cursor.ClearEntireLine(), msg)) - case string: - if lastMsg == msg { - break + if v.GetBool("interactive") { + s := spin.New() + go func() { + lastMsg := "" + for { + select { + case msg, ok := <-progressCh: + if !ok { + continue } - lastMsg = msg - c := color.New(color.FgCyan) - c.Println(fmt.Sprintf("%s\r * %s", cursor.ClearEntireLine(), msg)) + switch msg := msg.(type) { + case error: + c := color.New(color.FgHiRed) + c.Println(fmt.Sprintf("%s\r * %v", cursor.ClearEntireLine(), msg)) + case string: + if lastMsg == msg { + break + } + lastMsg = msg + c := color.New(color.FgCyan) + c.Println(fmt.Sprintf("%s\r * %s", cursor.ClearEntireLine(), msg)) + } + case <-time.After(time.Millisecond * 100): + fmt.Printf("\r \033[36mRunning Preflight checks\033[m %s ", s.Next()) + case <-finishedCh: + fmt.Printf("\r%s\r", cursor.ClearEntireLine()) + return } - case <-time.After(time.Millisecond * 100): - fmt.Printf("\r \033[36mRunning Preflight checks\033[m %s ", s.Next()) - case <-finishedCh: - fmt.Printf("\r%s\r", cursor.ClearEntireLine()) - return } - } - }() + }() + } defer func() { close(finishedCh)