From 8ce1782380e1764e2eccbeb5aa366a15a9c6162b Mon Sep 17 00:00:00 2001 From: Pete Davison Date: Thu, 29 Sep 2022 17:13:12 +0000 Subject: [PATCH 1/2] feat: add coloured output to --list, --list-all and --summary flags feat: add coloured output to --list and --list-all feat: add coloured output to --summary chore: update colors refactor: better consistency in writer calls in printTasks feat: subtasks are printed green in --summary --- help.go | 7 +++++-- internal/logger/logger.go | 7 ++++++- internal/summary/summary.go | 8 +++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/help.go b/help.go index 612e45b3..b47350e2 100644 --- a/help.go +++ b/help.go @@ -42,9 +42,12 @@ func (e *Executor) printTasks(listAll bool) { e.Logger.Outf(logger.Default, "task: Available tasks for this project:") // Format in tab-separated columns with a tab stop of 8. - w := tabwriter.NewWriter(e.Stdout, 0, 8, 0, '\t', 0) + w := tabwriter.NewWriter(e.Stdout, 0, 8, 6, ' ', 0) for _, task := range tasks { - fmt.Fprintf(w, "* %s: \t%s\n", task.Task, task.Desc) + e.Logger.FOutf(w, logger.Yellow, "* ") + e.Logger.FOutf(w, logger.Green, task.Task) + e.Logger.FOutf(w, logger.Default, ": \t%s", task.Desc) + fmt.Fprint(w, "\n") } w.Flush() } diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 2e65ef88..d3e86db2 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -53,6 +53,11 @@ type Logger struct { // Outf prints stuff to STDOUT. func (l *Logger) Outf(color Color, s string, args ...interface{}) { + l.FOutf(l.Stdout, color, s+"\n", args...) +} + +// FOutf prints stuff to the given writer. +func (l *Logger) FOutf(w io.Writer, color Color, s string, args ...interface{}) { if len(args) == 0 { s, args = "%s", []interface{}{s} } @@ -60,7 +65,7 @@ func (l *Logger) Outf(color Color, s string, args ...interface{}) { color = Default } print := color() - print(l.Stdout, s+"\n", args...) + print(w, s, args...) } // VerboseOutf prints stuff to STDOUT if verbose mode is enabled. diff --git a/internal/summary/summary.go b/internal/summary/summary.go index 4b96c3d9..13e19f01 100644 --- a/internal/summary/summary.go +++ b/internal/summary/summary.go @@ -56,7 +56,8 @@ func printTaskSummary(l *logger.Logger, t *taskfile.Task) { } func printTaskName(l *logger.Logger, t *taskfile.Task) { - l.Outf(logger.Default, "task: %s", t.Name()) + l.FOutf(l.Stdout, logger.Default, "task: ") + l.FOutf(l.Stdout, logger.Green, "%s\n", t.Name()) l.Outf(logger.Default, "") } @@ -94,10 +95,11 @@ func printTaskCommands(l *logger.Logger, t *taskfile.Task) { l.Outf(logger.Default, "commands:") for _, c := range t.Cmds { isCommand := c.Cmd != "" + l.FOutf(l.Stdout, logger.Default, " - ") if isCommand { - l.Outf(logger.Default, " - %s", c.Cmd) + l.FOutf(l.Stdout, logger.Yellow, "%s\n", c.Cmd) } else { - l.Outf(logger.Default, " - Task: %s", c.Task) + l.FOutf(l.Stdout, logger.Green, "Task: %s\n", c.Task) } } } From 077efbd2e7e72b263d9db967f376454616c81e0d Mon Sep 17 00:00:00 2001 From: Pete Davison Date: Fri, 7 Oct 2022 10:01:54 +0000 Subject: [PATCH 2/2] Add CHANGELOG for #874 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2249796c..fe311987 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Add colored output to `--list`, `--list-all` and `--summary` flags ([#845](https://github.com/go-task/task/pull/845), [#874](https://github.com/go-task/task/pull/874)). - Fix unexpected behavior where `label:` was being shown instead of the task name on `--list` ([#603](https://github.com/go-task/task/issues/603), [#877](https://github.com/go-task/task/pull/877)).