diff --git a/internal/summary/summary.go b/internal/summary/summary.go index db5476cf..8d44ab19 100644 --- a/internal/summary/summary.go +++ b/internal/summary/summary.go @@ -6,11 +6,19 @@ import ( "strings" ) -func Print(Logger *logger.Logger, task *taskfile.Task) { - printTaskName(Logger, task) - printTaskSummary(task.Summary, Logger) - printTaskDependencies(task.Deps, Logger) - printTaskCommands(task.Cmds, Logger) +func Print(l *logger.Logger, t *taskfile.Task) { + printTaskName(l, t) + if hasSummary(t) { + printTaskSummary(l, t) + } else { + printTaskDescription(l, t) + } + printTaskDependencies(l, t) + printTaskCommands(l, t) +} + +func hasSummary(task *taskfile.Task) bool { + return task.Summary != "" } func printTaskName(Logger *logger.Logger, task *taskfile.Task) { @@ -18,12 +26,12 @@ func printTaskName(Logger *logger.Logger, task *taskfile.Task) { Logger.Outf("") } -func printTaskCommands(cmds []*taskfile.Cmd, logger *logger.Logger) { - hasCommands := len(cmds) > 0 +func printTaskCommands(logger *logger.Logger, task *taskfile.Task) { + hasCommands := len(task.Cmds) > 0 if hasCommands { logger.Outf("") logger.Outf("commands:") - for _, c := range cmds { + for _, c := range task.Cmds { isCommand := c.Cmd != "" if isCommand { logger.Outf(" - %s", c.Cmd) @@ -34,20 +42,20 @@ func printTaskCommands(cmds []*taskfile.Cmd, logger *logger.Logger) { } } -func printTaskDependencies(deps []*taskfile.Dep, logger *logger.Logger) { - hasDependencies := len(deps) > 0 +func printTaskDependencies(logger *logger.Logger, task *taskfile.Task) { + hasDependencies := len(task.Deps) > 0 if hasDependencies { logger.Outf("") logger.Outf("dependencies:") - for _, d := range deps { + for _, d := range task.Deps { logger.Outf(" - %s", d.Task) } } } -func printTaskSummary(description string, Logger *logger.Logger) { - lines := strings.Split(description, "\n") +func printTaskSummary(Logger *logger.Logger, task *taskfile.Task) { + lines := strings.Split(task.Summary, "\n") for i, line := range lines { notLastLine := i+1 < len(lines) if notLastLine || line != "" { @@ -55,3 +63,7 @@ func printTaskSummary(description string, Logger *logger.Logger) { } } } + +func printTaskDescription(Logger *logger.Logger, task *taskfile.Task) { + Logger.Outf(task.Desc) +} diff --git a/internal/summary/summary_test.go b/internal/summary/summary_test.go index 929501e1..1b4087be 100644 --- a/internal/summary/summary_test.go +++ b/internal/summary/summary_test.go @@ -138,3 +138,28 @@ commands: ` return expected } + +func TestPrintDescriptionAsFallback(t *testing.T) { + buffer := &bytes.Buffer{} + l := logger.Logger{ + Stdout: buffer, + Stderr: buffer, + Verbose: false, + } + taskWithoutSummary := &taskfile.Task{ + Desc: "description", + } + + taskWithSummary := &taskfile.Task{ + Desc: "description", + Summary: "summary", + } + + summary.Print(&l, taskWithoutSummary) + assert.Contains(t, buffer.String(), "description") + + buffer.Reset() + summary.Print(&l, taskWithSummary) + assert.NotContains(t, buffer.String(), "description") + +}