From 8ff70ea5a9210b545e3c95acb23b5a983b64da9c Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 3 May 2024 17:17:57 -0700 Subject: [PATCH] turn-off coloring if we have std{err,out} dumb terminals (#19667) --- cmd/common-main.go | 8 ++++++++ go.mod | 2 +- internal/logger/logger.go | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/common-main.go b/cmd/common-main.go index 7c29a92d5..737d2d660 100644 --- a/cmd/common-main.go +++ b/cmd/common-main.go @@ -63,6 +63,7 @@ import ( "github.com/minio/pkg/v2/ellipses" "github.com/minio/pkg/v2/env" xnet "github.com/minio/pkg/v2/net" + "golang.org/x/term" ) // serverDebugLog will enable debug printing @@ -73,6 +74,13 @@ var ( ) func init() { + if !term.IsTerminal(int(os.Stdout.Fd())) || !term.IsTerminal(int(os.Stderr.Fd())) { + color.TurnOff() + } + if env.Get("NO_COLOR", "") != "" || env.Get("TERM", "") == "dumb" { + color.TurnOff() + } + if runtime.GOOS == "windows" { if mousetrap.StartedByExplorer() { fmt.Printf("Don't double-click %s\n", os.Args[0]) diff --git a/go.mod b/go.mod index 9a870bade..4660b8948 100644 --- a/go.mod +++ b/go.mod @@ -95,6 +95,7 @@ require ( golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f golang.org/x/oauth2 v0.19.0 golang.org/x/sys v0.19.0 + golang.org/x/term v0.19.0 golang.org/x/time v0.5.0 google.golang.org/api v0.172.0 gopkg.in/yaml.v2 v2.4.0 @@ -241,7 +242,6 @@ require ( golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.24.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.20.0 // indirect google.golang.org/genproto v0.0.0-20240415180920-8c6c420018be // indirect diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 23de0a269..3c9985e29 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -80,6 +80,7 @@ var ( // EnableQuiet - turns quiet option on. func EnableQuiet() { + color.TurnOff() // no colored outputs necessary in quiet mode. quietFlag = true }