diff --git a/task.go b/task.go index 9e4123b4..1e2612a1 100644 --- a/task.go +++ b/task.go @@ -88,8 +88,9 @@ func (e *Executor) displayTaskDetails(task string) { return } lines := strings.Split(s, "\n") - for _, line := range lines { - if line != "" { + for i, line := range lines { + notLastLine := i+1 < len(lines) + if notLastLine || line != "" { e.Logger.Outf(line) } } diff --git a/task_test.go b/task_test.go index aedece21..8baeba46 100644 --- a/task_test.go +++ b/task_test.go @@ -595,4 +595,9 @@ func TestDetails(t *testing.T) { assert.NoError(t, e.Run(context.Background(), taskfile.Call{Task: "other-task-with-details"}, taskfile.Call{Task: "task-with-details"})) assert.Contains(t, buff.String(), "details of other-task-with-details") assert.NotContains(t, buff.String(), "details of task-with-details") + + buff.Reset() + assert.NoError(t, e.Run(context.Background(), taskfile.Call{Task: "task-with-description-containing-empty-line"})) + assert.Equal(t, buff.String(), "First line followed by empty line\n\nLast Line\n") + } diff --git a/testdata/details/Taskfile.yml b/testdata/details/Taskfile.yml index efb09efa..d2b1ec49 100644 --- a/testdata/details/Taskfile.yml +++ b/testdata/details/Taskfile.yml @@ -22,3 +22,11 @@ tasks: details: details of other-task-with-details cmds: - echo 'other-task-with-details was executed' + + task-with-description-containing-empty-line: + details: | + First line followed by empty line + + Last Line + cmds: + - exit 0