From 7aca7be3cbb618cc981d16a5022275346b400217 Mon Sep 17 00:00:00 2001 From: Navus Date: Fri, 1 Apr 2022 13:26:14 +0100 Subject: [PATCH] Do not show colors in Windows CMD & Powershell --- spinner.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/spinner.go b/spinner.go index f6bb029..e2c4e38 100644 --- a/spinner.go +++ b/spinner.go @@ -100,7 +100,8 @@ var validColors = map[string]bool{ } // returns true if the OS is windows and the WT_SESSION env variable is set. -var isWindowsTerminalOnWindows = len(os.Getenv("WT_SESSION")) > 0 && runtime.GOOS == "windows" +var isWindows = runtime.OSOS == "windows" +var isWindowsTerminalOnWindows = len(os.Getenv("WT_SESSION")) > 0 && isWindows // returns a valid color's foreground text color attribute var colorAttributeMap = map[string]color.Attribute{ @@ -280,6 +281,12 @@ func (s *Spinner) Start() { // hides the cursor fmt.Fprint(s.Writer, "\033[?25l") } + // Disable colors for simple Windows CMD or Powershell + // as they can not recognize them + if isWindows && !isWindowsTerminalOnWindows { + color.NoColor = true + } + s.active = true s.mu.Unlock() @@ -304,7 +311,7 @@ func (s *Spinner) Start() { } var outColor string - if runtime.GOOS == "windows" { + if isWindows { if s.Writer == os.Stderr { outColor = fmt.Sprintf("\r%s%s%s", s.Prefix, s.chars[i], s.Suffix) } else {