github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/bob/playbook/status_map.go (about) 1 package playbook 2 3 type StatusMap map[string]*Status 4 5 // walk the task tree starting at root. Following dependend tasks. 6 func (tsm StatusMap) walk(root string, fn func(taskname string, _ *Status, _ error) error) error { 7 task, ok := tsm[root] 8 if !ok { 9 return ErrTaskDoesNotExist 10 } 11 12 err := fn(root, task, nil) 13 if err != nil { 14 return err 15 } 16 for _, dependentTaskName := range task.Task.DependsOn { 17 err = tsm.walk(dependentTaskName, fn) 18 if err != nil { 19 return err 20 } 21 } 22 23 return nil 24 }