Skip to content

Commit 0de7dbd

Browse files
authored
Merge pull request #28 from tatsuo48/feature/red-negative-leftover
feat: Display negative leftover values in red
2 parents bcf2699 + 5fbd812 commit 0de7dbd

File tree

2 files changed

+88
-1
lines changed

2 files changed

+88
-1
lines changed

main.go

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,40 @@ func main() {
140140
table.Append([]string{"sum of all container", fmt.Sprintf("%d", allCPU), fmt.Sprintf("%d", allMemory), fmt.Sprintf("%d", allMemoryReservation)})
141141
taskCPU, _ := strconv.ParseInt(taskDefinition.CPU, 10, 64)
142142
taskMemory, _ := strconv.ParseInt(taskDefinition.Memory, 10, 64)
143-
table.SetFooter([]string{"leftover", fmt.Sprintf("%d", taskCPU-allCPU), fmt.Sprintf("%d", taskMemory-allMemory), fmt.Sprintf("%d", taskMemory-allMemoryReservation)})
143+
144+
leftoverCPU := taskCPU - allCPU
145+
leftoverMemory := taskMemory - allMemory
146+
leftoverMemoryReservation := taskMemory - allMemoryReservation
147+
148+
footerStrings := []string{
149+
"leftover",
150+
fmt.Sprintf("%d", leftoverCPU),
151+
fmt.Sprintf("%d", leftoverMemory),
152+
fmt.Sprintf("%d", leftoverMemoryReservation),
153+
}
154+
table.SetFooter(footerStrings)
155+
156+
footerColors := make([]tablewriter.Colors, 4)
157+
footerColors[0] = tablewriter.Colors{} // For "leftover" label
158+
159+
if leftoverCPU < 0 {
160+
footerColors[1] = tablewriter.Colors{tablewriter.FgRedColor}
161+
} else {
162+
footerColors[1] = tablewriter.Colors{}
163+
}
164+
165+
if leftoverMemory < 0 {
166+
footerColors[2] = tablewriter.Colors{tablewriter.FgRedColor}
167+
} else {
168+
footerColors[2] = tablewriter.Colors{}
169+
}
170+
171+
if leftoverMemoryReservation < 0 {
172+
footerColors[3] = tablewriter.Colors{tablewriter.FgRedColor}
173+
} else {
174+
footerColors[3] = tablewriter.Colors{}
175+
}
176+
table.SetFooterColor(footerColors...)
177+
144178
table.Render()
145179
}

test_task.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{
2+
"taskDefinition": {
3+
"family": "test-family",
4+
"cpu": "1024",
5+
"memory": "2048",
6+
"networkMode": "awsvpc",
7+
"requiresCompatibilities": [
8+
"FARGATE"
9+
],
10+
"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
11+
"containerDefinitions": [
12+
{
13+
"name": "container1",
14+
"image": "nginx:latest",
15+
"cpu": 600,
16+
"memory": 1500,
17+
"memoryReservation": 1024,
18+
"essential": true,
19+
"portMappings": [
20+
{
21+
"containerPort": 80,
22+
"hostPort": 80,
23+
"protocol": "tcp"
24+
}
25+
],
26+
"logConfiguration": {
27+
"logDriver": "awslogs",
28+
"options": {
29+
"awslogs-group": "/ecs/test-family",
30+
"awslogs-region": "us-east-1",
31+
"awslogs-stream-prefix": "ecs"
32+
}
33+
}
34+
},
35+
{
36+
"name": "container2",
37+
"image": "redis:latest",
38+
"cpu": 600,
39+
"memory": 1500,
40+
"memoryReservation": 1024,
41+
"essential": true,
42+
"logConfiguration": {
43+
"logDriver": "awslogs",
44+
"options": {
45+
"awslogs-group": "/ecs/test-family",
46+
"awslogs-region": "us-east-1",
47+
"awslogs-stream-prefix": "ecs"
48+
}
49+
}
50+
}
51+
]
52+
}
53+
}

0 commit comments

Comments
 (0)