Skip to content

Commit 97caa96

Browse files
committed
Add BuildInsightsPrinter to encapsulate CLI printing logic
1 parent ee8e351 commit 97caa96

File tree

2 files changed

+54
-42
lines changed

2 files changed

+54
-42
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.gradle.enterprise.cli;
2+
3+
import com.gradle.enterprise.model.BuildScanData;
4+
import com.gradle.enterprise.model.BuildTimeMetrics;
5+
6+
import java.util.List;
7+
import java.util.stream.Collectors;
8+
9+
final class BuildInsightsPrinter {
10+
11+
private BuildInsightsPrinter() {
12+
}
13+
14+
static void printInsights(List<BuildScanData> buildScanData) {
15+
printBuildScanDataHeader();
16+
printBuildScanData(buildScanData);
17+
18+
if (buildScanData.size() == 2) {
19+
printBuildTimeMetricsHeader();
20+
printBuildTimeMetrics(buildScanData);
21+
}
22+
}
23+
24+
private static void printBuildScanDataHeader() {
25+
List<String> labels = BuildScanDataFields.ordered().map(f -> f.label).collect(Collectors.toList());
26+
System.out.println(String.join(",", labels));
27+
}
28+
29+
private static void printBuildScanData(List<BuildScanData> buildScanData) {
30+
buildScanData.forEach(BuildInsightsPrinter::printBuildScanData);
31+
}
32+
33+
private static void printBuildScanData(BuildScanData buildScanData) {
34+
List<String> values = BuildScanDataFields.ordered().map(f -> f.value.apply(buildScanData)).collect(Collectors.toList());
35+
System.out.println(String.join(",", values));
36+
}
37+
38+
private static void printBuildTimeMetricsHeader() {
39+
List<String> labels = BuildTimeMetricsFields.ordered().map(f -> f.label).collect(Collectors.toList());
40+
System.out.println(String.join(",", labels));
41+
}
42+
43+
private static void printBuildTimeMetrics(List<BuildScanData> buildScanData) {
44+
final BuildTimeMetrics buildTimeData = BuildTimeMetrics.from(buildScanData.get(0), buildScanData.get(1));
45+
List<String> values;
46+
if (buildTimeData == null) {
47+
values = BuildTimeMetricsFields.ordered().map(f -> "").collect(Collectors.toList());
48+
} else {
49+
values = BuildTimeMetricsFields.ordered().map(f -> f.value.apply(buildTimeData)).collect(Collectors.toList());
50+
}
51+
System.out.println(String.join(",", values));
52+
}
53+
}

components/fetch-build-scan-data-cmdline-tool/src/main/java/com/gradle/enterprise/cli/FetchBuildScanDataCommand.java

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.gradle.enterprise.api.client.FailedRequestException;
44
import com.gradle.enterprise.api.client.GradleEnterpriseApiClient;
5-
import com.gradle.enterprise.model.BuildTimeMetrics;
65
import com.gradle.enterprise.model.BuildScanData;
76
import com.gradle.enterprise.model.CustomValueNames;
87
import com.gradle.enterprise.model.NumberedBuildScan;
@@ -71,7 +70,7 @@ public Integer call() {
7170
logFinishedFetchingAllBuildScanData();
7271
logFetchResults(buildScanData, customValueKeys);
7372

74-
printResults(buildScanData);
73+
BuildInsightsPrinter.printInsights(buildScanData);
7574

7675
return ExitCode.OK;
7776
}
@@ -174,46 +173,6 @@ private void logFetchResultFor(int runNum, String property, String customValueKe
174173
);
175174
}
176175

177-
private static void printResults(List<BuildScanData> buildScanData) {
178-
printBuildScanDataHeader();
179-
printBuildScanData(buildScanData);
180-
181-
if (buildScanData.size() == 2) {
182-
printBuildTimeMetricsHeader();
183-
printBuildTimeMetrics(buildScanData);
184-
}
185-
}
186-
187-
public static void printBuildScanDataHeader() {
188-
List<String> labels = BuildScanDataFields.ordered().map(f -> f.label).collect(Collectors.toList());
189-
System.out.println(String.join(",", labels));
190-
}
191-
192-
private static void printBuildScanData(List<BuildScanData> buildScanData) {
193-
buildScanData.forEach(FetchBuildScanDataCommand::printBuildScanData);
194-
}
195-
196-
private static void printBuildScanData(BuildScanData buildScanData) {
197-
List<String> values = BuildScanDataFields.ordered().map(f -> f.value.apply(buildScanData)).collect(Collectors.toList());
198-
System.out.println(String.join(",", values));
199-
}
200-
201-
private static void printBuildTimeMetricsHeader() {
202-
List<String> labels = BuildTimeMetricsFields.ordered().map(f -> f.label).collect(Collectors.toList());
203-
System.out.println(String.join(",", labels));
204-
}
205-
206-
private static void printBuildTimeMetrics(List<BuildScanData> buildScanData) {
207-
final BuildTimeMetrics buildTimeData = BuildTimeMetrics.from(buildScanData.get(0), buildScanData.get(1));
208-
List<String> values;
209-
if (buildTimeData == null) {
210-
values = BuildTimeMetricsFields.ordered().map(f -> "").collect(Collectors.toList());
211-
} else {
212-
values = BuildTimeMetricsFields.ordered().map(f -> f.value.apply(buildTimeData)).collect(Collectors.toList());
213-
}
214-
System.out.println(String.join(",", values));
215-
}
216-
217176
private static String toOrdinal(int i) {
218177
switch(i + 1) {
219178
case 1: return "first";

0 commit comments

Comments
 (0)