package cmd import ( "fmt" "strconv" "github.com/nektos/act/pkg/model" ) func printList(plan *model.Plan) error { type lineInfoDef struct { id string stage string name string } lineInfos := []lineInfoDef{} header := lineInfoDef{ id: "ID", stage: "Stage", name: "Name", } idMaxWidth := len(header.id) stageMaxWidth := len(header.stage) nameMaxWidth := len(header.name) for i, stage := range plan.Stages { for _, r := range stage.Runs { line := lineInfoDef{ id: r.JobID, stage: strconv.Itoa(i), name: r.String(), } lineInfos = append(lineInfos, line) if idMaxWidth < len(line.id) { idMaxWidth = len(line.id) } if stageMaxWidth < len(line.stage) { stageMaxWidth = len(line.stage) } if nameMaxWidth < len(line.name) { nameMaxWidth = len(line.name) } } } idMaxWidth += 2 stageMaxWidth += 2 nameMaxWidth += 2 fmt.Printf("%*s%*s%*s\n", -idMaxWidth, header.id, -stageMaxWidth, header.stage, -nameMaxWidth, header.name) for _, line := range lineInfos { fmt.Printf("%*s%*s%*s\n", -idMaxWidth, line.id, -stageMaxWidth, line.stage, -nameMaxWidth, line.name) } return nil }