github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/bob/playbook/summary.go (about)

     1  package playbook
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/benchkram/bob/bobtask/processed"
     7  	"github.com/benchkram/bob/pkg/boblog"
     8  	"github.com/benchkram/bob/pkg/format"
     9  	"github.com/logrusorgru/aurora"
    10  )
    11  
    12  // summary prints the tasks processing details as a summary of the playbook.
    13  func (p *Playbook) summary(processedTasks []*processed.Task) {
    14  
    15  	boblog.Log.V(1).Info("")
    16  	boblog.Log.V(1).Info(aurora.Bold("● ● ● ●").BrightGreen().String())
    17  
    18  	t := fmt.Sprintf("Ran %d tasks in %s", len(processedTasks), format.DisplayDuration(p.ExecutionTime()))
    19  
    20  	boblog.Log.V(1).Info(aurora.Bold(t).BrightGreen().String())
    21  	for _, t := range processedTasks {
    22  		stat, err := p.TaskStatus(t.Name())
    23  		if err != nil {
    24  			fmt.Println(err)
    25  			continue
    26  		}
    27  
    28  		execTime := ""
    29  		status := stat.State()
    30  		execTime = fmt.Sprintf("\t(%s)", format.DisplayDuration(stat.ExecutionTime()))
    31  
    32  		taskName := t.Name()
    33  		boblog.Log.V(1).Info(fmt.Sprintf("  %-*s\t%s%s", p.namePad, taskName, status.Summary(), execTime))
    34  
    35  	}
    36  	boblog.Log.V(1).Info("")
    37  }