-
Notifications
You must be signed in to change notification settings - Fork 4
/
stylish.pipeline.go
52 lines (45 loc) · 1.4 KB
/
stylish.pipeline.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package formatter
import (
"fmt"
"text/tabwriter"
"time"
"bunnyshell.com/sdk"
)
func tabulatePipelineCollection(writer *tabwriter.Writer, data *sdk.PaginatedPipelineCollection) {
fmt.Fprintf(writer, "%v\t %v\t %v\t %v\t %v\n", "PipelineID", "EnvironmentID", "OrganizationID", "Description", "Status")
if data.Embedded != nil {
for _, item := range data.Embedded.Item {
fmt.Fprintf(
writer,
"%v\t %v\t %v\t %v\t %v\n",
item.GetId(),
item.GetEnvironment(),
item.GetOrganization(),
item.GetDescription(),
item.GetStatus(),
)
}
}
}
func tabulatePipelineItem(writer *tabwriter.Writer, item *sdk.PipelineItem) {
fmt.Fprintf(writer, "%v\t %v\n", "PipelineID", item.GetId())
fmt.Fprintf(writer, "%v\t %v\n", "EnvironmentID", item.GetEnvironment())
fmt.Fprintf(writer, "%v\t %v\n", "OrganizationID", item.GetOrganization())
fmt.Fprintf(writer, "%v\t %v\n", "Description", item.GetDescription())
fmt.Fprintf(writer, "%v\t %v\n", "Status", item.GetStatus())
for index, stage := range item.GetStages() {
if index == 0 {
fmt.Fprintf(writer, "\n")
fmt.Fprintf(writer, "%v\t %v\t %v\t %v\t %v\t %v\n", "Stages", "Name", "Duration", "Jobs", "JobsDone", "Status")
}
fmt.Fprintf(
writer,
"\t %v\t %v\t %v\t %v\t %v\n",
stage.GetName(),
time.Duration(stage.GetDuration())*time.Second,
stage.GetJobsCount(),
stage.GetCompletedJobsCount(),
stage.GetStatus(),
)
}
}