github.1485827954.workers.dev/nektos/act@v0.2.63/cmd/graph.go (about) 1 package cmd 2 3 import ( 4 "os" 5 6 "github.com/nektos/act/pkg/common" 7 "github.com/nektos/act/pkg/model" 8 ) 9 10 func drawGraph(plan *model.Plan) error { 11 drawings := make([]*common.Drawing, 0) 12 13 jobPen := common.NewPen(common.StyleSingleLine, 96) 14 arrowPen := common.NewPen(common.StyleNoLine, 97) 15 for i, stage := range plan.Stages { 16 if i > 0 { 17 drawings = append(drawings, arrowPen.DrawArrow()) 18 } 19 20 ids := make([]string, 0) 21 for _, r := range stage.Runs { 22 ids = append(ids, r.String()) 23 } 24 drawings = append(drawings, jobPen.DrawBoxes(ids...)) 25 } 26 27 maxWidth := 0 28 for _, d := range drawings { 29 if d.GetWidth() > maxWidth { 30 maxWidth = d.GetWidth() 31 } 32 } 33 34 for _, d := range drawings { 35 d.Draw(os.Stdout, maxWidth) 36 } 37 return nil 38 }