From bfe3e6b2f8564ad5e999d46a664f2e9cc95b8144 Mon Sep 17 00:00:00 2001 From: Vladimir Varankin Date: Wed, 6 Nov 2024 11:12:03 +0100 Subject: [PATCH] cmd: force no color output when NO_COLOR env presents --- cmd/constant.go | 15 ++++++++++++--- cmd/root.go | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cmd/constant.go b/cmd/constant.go index afc69123..3de2de18 100644 --- a/cmd/constant.go +++ b/cmd/constant.go @@ -1,5 +1,7 @@ package cmd +import "os" + var unwrapScalarFlag = newUnwrapFlag() var unwrapScalar = false @@ -12,9 +14,6 @@ var outputFormat = "" var inputFormat = "" var exitStatus = false -var forceColor = false -var forceNoColor = false -var colorsEnabled = false var indent = 2 var noDocSeparators = false var nullInput = false @@ -23,6 +22,16 @@ var verbose = false var version = false var prettyPrint = false +var forceColor = false +var forceNoColor = false +var colorsEnabled = false + +func init() { + // when NO_COLOR environment variable presents and not an empty string the colored output should be disabled; + // refer to no-color.org + forceNoColor = os.Getenv("NO_COLOR") != "" +} + // can be either "" (off), "extract" or "process" var frontMatter = "" diff --git a/cmd/root.go b/cmd/root.go index f5d93606..709095e4 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -182,7 +182,7 @@ yq -P -oy sample.json rootCmd.PersistentFlags().BoolVarP(&exitStatus, "exit-status", "e", false, "set exit status if there are no matches or null or false is returned") rootCmd.PersistentFlags().BoolVarP(&forceColor, "colors", "C", false, "force print with colors") - rootCmd.PersistentFlags().BoolVarP(&forceNoColor, "no-colors", "M", false, "force print with no colors") + rootCmd.PersistentFlags().BoolVarP(&forceNoColor, "no-colors", "M", forceNoColor, "force print with no colors") rootCmd.PersistentFlags().StringVarP(&frontMatter, "front-matter", "f", "", "(extract|process) first input as yaml front-matter. Extract will pull out the yaml content, process will run the expression against the yaml content, leaving the remaining data intact") if err = rootCmd.RegisterFlagCompletionFunc("front-matter", cobra.FixedCompletions([]string{"extract", "process"}, cobra.ShellCompDirectiveNoFileComp)); err != nil { panic(err)