]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Respect NO_COLOR
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 13 Jun 2022 13:28:08 +0000 (15:28 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 13 Jun 2022 16:07:37 +0000 (18:07 +0200)
Fixes #10004

commands/hugo.go
common/loggers/loggers.go
common/terminal/colors.go
common/text/position.go

index f10fec00b7cfc52d7978ae1cf6bf4904ccd3bc2f..5169d65a52ef14dc25c2a5bb9b9d8986ed4f7c7e 100644 (file)
@@ -284,10 +284,6 @@ func setValueFromFlag(flags *flag.FlagSet, key string, cfg config.Provider, targ
        }
 }
 
-func isTerminal() bool {
-       return terminal.IsTerminal(os.Stdout)
-}
-
 func (c *commandeer) fullBuild(noBuildLock bool) error {
        var (
                g         errgroup.Group
@@ -297,7 +293,7 @@ func (c *commandeer) fullBuild(noBuildLock bool) error {
        if !c.h.quiet {
                fmt.Println("Start building sites … ")
                fmt.Println(hugo.BuildVersionString())
-               if isTerminal() {
+               if terminal.IsTerminal(os.Stdout) {
                        defer func() {
                                fmt.Print(showCursor + clearLine)
                        }()
index c61c55a67fa866c7f3bfb6a55295f8e7816c0bc4..308635fe9d45eecf75771d010fc66ceb2db78b8d 100644 (file)
@@ -290,7 +290,7 @@ func InitGlobalLogger(stdoutThreshold, logThreshold jww.Threshold, outHandle, lo
 }
 
 func getLogWriters(outHandle, logHandle io.Writer) (io.Writer, io.Writer) {
-       isTerm := terminal.IsTerminal(os.Stdout)
+       isTerm := terminal.PrintANSIColors(os.Stdout)
        if logHandle != ioutil.Discard && isTerm {
                // Remove any Ansi coloring from log output
                logHandle = ansiCleaner{w: logHandle}
index 334b82fae5b4f6ba17a08b20abe36832fac0033e..c4a78291ed41da1b77ebf552d68dd338ec8291d2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2018 The Hugo Authors. All rights reserved.
+// Copyright 2022 The Hugo Authors. All rights reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -29,6 +29,15 @@ const (
        noticeColor  = "\033[1;36m%s\033[0m"
 )
 
+// PrintANSIColors returns false if NO_COLOR env variable is set,
+// else  IsTerminal(f).
+func PrintANSIColors(f *os.File) bool {
+       if os.Getenv("NO_COLOR") != "" {
+               return false
+       }
+       return IsTerminal(f)
+}
+
 // IsTerminal return true if the file descriptor is terminal and the TERM
 // environment variable isn't a dumb one.
 func IsTerminal(f *os.File) bool {
index 34e856c5dd91937798b9f4145eed4f098a71ef2e..cc1eda3540a9bafcdc1f6bbf1c8aee5e502ff1ec 100644 (file)
@@ -83,7 +83,7 @@ func createPositionStringFormatter(formatStr string) func(p Position) string {
 
                msg := fmt.Sprintf(format, args...)
 
-               if terminal.IsTerminal(os.Stdout) {
+               if terminal.PrintANSIColors(os.Stdout) {
                        return terminal.Notice(msg)
                }