MCPcopy
hub / github.com/go-task/task / GetTaskList

Method GetTaskList

task.go:554–596  ·  view source on GitHub ↗
(filters ...FilterFunc)

Source from the content-addressed store, hash-verified

552type FilterFunc func(task *ast.Task) bool
553
554func (e *Executor) GetTaskList(filters ...FilterFunc) ([]*ast.Task, error) {
555 tasks := make([]*ast.Task, 0, e.Taskfile.Tasks.Len())
556
557 // Create an error group to wait for each task to be compiled
558 var g errgroup.Group
559
560 // Sort the tasks
561 if e.TaskSorter == nil {
562 e.TaskSorter = sort.AlphaNumericWithRootTasksFirst
563 }
564
565 // Filter tasks based on the given filter functions
566 for task := range e.Taskfile.Tasks.Values(e.TaskSorter) {
567 var shouldFilter bool
568 for _, filter := range filters {
569 if filter(task) {
570 shouldFilter = true
571 }
572 }
573 if !shouldFilter {
574 tasks = append(tasks, task)
575 }
576 }
577
578 // Compile the list of tasks
579 for i := range tasks {
580 g.Go(func() error {
581 compiledTask, err := e.CompiledTaskForTaskList(&Call{Task: tasks[i].Task})
582 if err != nil {
583 return err
584 }
585 tasks[i] = compiledTask
586 return nil
587 })
588 }
589
590 // Wait for all the go routines to finish
591 if err := g.Wait(); err != nil {
592 return nil, err
593 }
594
595 return tasks, nil
596}
597
598// FilterOutNoDesc removes all tasks that do not contain a description.
599func FilterOutNoDesc(task *ast.Task) bool {

Callers 1

ListTasksMethod · 0.95

Calls 3

LenMethod · 0.45
ValuesMethod · 0.45

Tested by

no test coverage detected