1
0
mirror of https://github.com/go-task/task.git synced 2025-01-20 04:59:37 +02:00

refactor: wrap PrintTasksHelp with arg-less signatures

provide exported methods for accessing PrintTasksHelp variants.
This commit is contained in:
Kevin Ard 2022-01-03 12:12:18 -05:00
parent 347c796662
commit 42702e81b3
4 changed files with 23 additions and 9 deletions

View File

@ -150,8 +150,12 @@ func main() {
return
}
if list || listAll {
e.PrintTasksHelp(listAll)
if list {
e.ListTasksWithDesc()
}
if listAll {
e.ListAllTasks()
return
}

16
help.go
View File

@ -15,7 +15,7 @@ import (
func (e *Executor) PrintTasksHelp(listAll bool) {
var tasks []*taskfile.Task
if listAll == true {
tasks = e.taskNames()
tasks = e.allTaskNames()
} else {
tasks = e.tasksWithDesc()
}
@ -35,7 +35,7 @@ func (e *Executor) PrintTasksHelp(listAll bool) {
w.Flush()
}
func (e *Executor) taskNames() (tasks []*taskfile.Task) {
func (e *Executor) allTaskNames() (tasks []*taskfile.Task) {
tasks = make([]*taskfile.Task, 0, len(e.Taskfile.Tasks))
for _, task := range e.Taskfile.Tasks {
tasks = append(tasks, task)
@ -58,3 +58,15 @@ func (e *Executor) tasksWithDesc() (tasks []*taskfile.Task) {
sort.Slice(tasks, func(i, j int) bool { return tasks[i].Task < tasks[j].Task })
return
}
// ListTasksWithDesc reports tasks that have a description spec.
func (e *Executor) ListTasksWithDesc() {
e.PrintTasksHelp(false)
return
}
// ListAllTasks reports all tasks, with or without a description spec.
func (e *Executor) ListAllTasks() {
e.PrintTasksHelp(true)
return
}

View File

@ -64,9 +64,7 @@ func (e *Executor) Run(ctx context.Context, calls ...taskfile.Call) error {
for _, c := range calls {
if _, ok := e.Taskfile.Tasks[c.Task]; !ok {
// FIXME: move to the main package
// FIXME: (ard.kevin.84@gmail.com) changed the PrintTasksHelp signature to support show all/some.
// False preserves original behavior, but should be reviewed.
e.PrintTasksHelp(false)
e.ListTasksWithDesc()
return &taskNotFoundError{taskName: c.Task}
}
}

View File

@ -492,7 +492,7 @@ func TestListAllShowsNoDesc(t *testing.T) {
assert.NoError(t, e.Setup())
var title string
e.PrintTasksHelp(true)
e.ListAllTasks()
for _, title = range []string{
"foo",
"voo",
@ -514,7 +514,7 @@ func TestListCanListDescOnly(t *testing.T) {
}
assert.NoError(t, e.Setup())
e.PrintTasksHelp(false)
e.ListTasksWithDesc()
var title string
assert.Contains(t, buff.String(), "foo")