From 0e575e9c25b8c4df7bf8fce277ca78b7f964370a Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Sun, 7 Jul 2019 14:13:53 -0300 Subject: [PATCH] Add --color=false flag to disable colored output --- cmd/task/task.go | 3 +++ internal/logger/logger.go | 7 +++++++ task.go | 2 ++ 3 files changed, 12 insertions(+) diff --git a/cmd/task/task.go b/cmd/task/task.go index e93727f6..72f73bd8 100644 --- a/cmd/task/task.go +++ b/cmd/task/task.go @@ -60,6 +60,7 @@ func main() { summary bool dir string output string + color bool ) pflag.BoolVar(&versionFlag, "version", false, "show Task version") @@ -74,6 +75,7 @@ func main() { pflag.BoolVar(&summary, "summary", false, "show summary about a task") pflag.StringVarP(&dir, "dir", "d", "", "sets directory of execution") pflag.StringVarP(&output, "output", "o", "", "sets output style: [interleaved|group|prefixed]") + pflag.BoolVarP(&color, "color", "c", true, "colored output") pflag.Parse() if versionFlag { @@ -100,6 +102,7 @@ func main() { Dir: dir, Dry: dry, Summary: summary, + Color: color, Stdin: os.Stdin, Stdout: os.Stdout, diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 17487b24..9a573106 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -25,6 +25,7 @@ type Logger struct { Stdout io.Writer Stderr io.Writer Verbose bool + Color bool } // Outf prints stuff to STDOUT. @@ -32,6 +33,9 @@ func (l *Logger) Outf(print PrintFunc, s string, args ...interface{}) { if len(args) == 0 { s, args = "%s", []interface{}{s} } + if !l.Color { + print = Default + } print(l.Stdout, s+"\n", args...) } @@ -47,6 +51,9 @@ func (l *Logger) Errf(print PrintFunc, s string, args ...interface{}) { if len(args) == 0 { s, args = "%s", []interface{}{s} } + if !l.Color { + print = Default + } print(l.Stderr, s+"\n", args...) } diff --git a/task.go b/task.go index 56119a1c..c5a33009 100644 --- a/task.go +++ b/task.go @@ -39,6 +39,7 @@ type Executor struct { Silent bool Dry bool Summary bool + Color bool Stdin io.Reader Stdout io.Writer @@ -108,6 +109,7 @@ func (e *Executor) Setup() error { Stdout: e.Stdout, Stderr: e.Stderr, Verbose: e.Verbose, + Color: e.Color, } v, err := strconv.ParseFloat(e.Taskfile.Version, 64)