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

Method traverse

watch.go:221–246  ·  view source on GitHub ↗
(calls []*Call, yield traverseFunc)

Source from the content-addressed store, hash-verified

219type traverseFunc func(*ast.Task) error
220
221func (e *Executor) traverse(calls []*Call, yield traverseFunc) error {
222 for _, c := range calls {
223 task, err := e.CompiledTask(c)
224 if err != nil {
225 return err
226 }
227 for _, dep := range task.Deps {
228 if dep.Task != "" {
229 if err := e.traverse([]*Call{{Task: dep.Task, Vars: dep.Vars}}, yield); err != nil {
230 return err
231 }
232 }
233 }
234 for _, cmd := range task.Cmds {
235 if cmd.Task != "" {
236 if err := e.traverse([]*Call{{Task: cmd.Task, Vars: cmd.Vars}}, yield); err != nil {
237 return err
238 }
239 }
240 }
241 if err := yield(task); err != nil {
242 return err
243 }
244 }
245 return nil
246}

Callers 1

collectSourcesMethod · 0.95

Calls 1

CompiledTaskMethod · 0.95

Tested by

no test coverage detected