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  }