Skip to content

Commit 3c6721b

Browse files
authored
Merge pull request #1029 from magento/mainline/uct-1023-theme-scanning-feature
Mainline/UCT-1023: Theme scanning feature
2 parents 26333ca + aed4f47 commit 3c6721b

File tree

11 files changed

+366
-141
lines changed

11 files changed

+366
-141
lines changed

src/com/magento/idea/magento2plugin/magento/packages/ComponentType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
@SuppressWarnings({"PMD.FieldNamingConventions"})
1111
public enum ComponentType {
1212
module,
13-
theme;
13+
theme,
14+
library;
1415

1516
/**
1617
* Get component type by value.

src/com/magento/idea/magento2uct/execution/GenerateUctReportCommand.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import com.magento.idea.magento2uct.util.inspection.FilterDescriptorResultsUtil;
3838
import com.magento.idea.magento2uct.util.inspection.SortDescriptorResultsUtil;
3939
import java.nio.file.Paths;
40+
import java.util.ArrayList;
4041
import java.util.List;
4142
import org.jetbrains.annotations.NotNull;
4243
import org.jetbrains.annotations.Nullable;
@@ -84,7 +85,7 @@ public void processTerminated(final @NotNull ProcessEvent event) {
8485
@SuppressWarnings({"PMD.ExcessiveMethodLength", "PMD.AvoidInstantiatingObjectsInLoops"})
8586
public void execute() {
8687
output.write("Upgrade compatibility tool\n");
87-
final PsiDirectory rootDirectory = getTargetPsiDirectory();
88+
final PsiDirectory rootDirectory = getTargetPsiDirectory(settingsService.getModulePath());
8889

8990
if (rootDirectory == null) {
9091
output.print(
@@ -93,8 +94,21 @@ public void execute() {
9394
process.destroyProcess();
9495
return;
9596
}
97+
final List<PsiDirectory> directoriesToScan = new ArrayList<>();
98+
directoriesToScan.add(rootDirectory);
99+
100+
if (settingsService.getHasAdditionalPath()) {
101+
final PsiDirectory additionalDirectory = getTargetPsiDirectory(
102+
settingsService.getAdditionalPath()
103+
);
104+
105+
if (additionalDirectory != null) {
106+
directoriesToScan.add(additionalDirectory);
107+
}
108+
}
109+
96110
final ModuleScanner scanner = new ModuleScanner(
97-
rootDirectory,
111+
directoriesToScan,
98112
new ExcludeMagentoBundledFilter()
99113
);
100114
final Summary summary = new Summary(
@@ -136,7 +150,7 @@ public void execute() {
136150

137151
if (fileProblemsHolder.hasResults()) {
138152
if (!isModuleHeaderPrinted) {
139-
outputUtil.printModuleName(componentData.getName());
153+
outputUtil.printModuleName(componentData);
140154
isModuleHeaderPrinted = true;
141155
}
142156
outputUtil.printProblemFile(filename);
@@ -165,9 +179,10 @@ public void execute() {
165179
}
166180
summary.trackProcessFinished();
167181
summary.setProcessedModules(scanner.getModuleCount());
182+
summary.setProcessedThemes(scanner.getThemeCount());
168183
outputUtil.printSummary(summary, resolvedEdition);
169184

170-
if (summary.getProcessedModules() == 0) {
185+
if (summary.getProcessedModules() == 0 && summary.getProcessedThemes() == 0) {
171186
process.destroyProcess();
172187
return;
173188
}
@@ -196,11 +211,11 @@ public void execute() {
196211
/**
197212
* Get target psi directory.
198213
*
214+
* @param targetDirPath String
215+
*
199216
* @return PsiDirectory
200217
*/
201-
private @Nullable PsiDirectory getTargetPsiDirectory() {
202-
final String targetDirPath = settingsService.getModulePath();
203-
218+
private @Nullable PsiDirectory getTargetPsiDirectory(final String targetDirPath) {
204219
if (targetDirPath == null) {
205220
return null;
206221
}

src/com/magento/idea/magento2uct/execution/output/ReportBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ public JsonFile build() {
163163
+ "installedVersion\": \"" + summary.getInstalledVersion() + "\","
164164
+ "\"AdobeCommerceVersion\": \"" + summary.getTargetVersion() + "\","
165165
+ "\"checkedModules\": " + summary.getProcessedModules() + ","
166+
+ "\"checkedThemes\": " + summary.getProcessedThemes() + ","
166167
+ "\"runningTime\": \"" + summary.getProcessRunningTime() + "\","
167168
+ "\"totalWarnings\": " + summary.getPhpWarnings() + ","
168169
+ "\"totalErrors\": " + summary.getPhpErrors() + ","

src/com/magento/idea/magento2uct/execution/output/Summary.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class Summary {
1818
private final SupportedVersion installedVersion;
1919
private final SupportedVersion targetVersion;
2020
private int processedModules;
21+
private int processedThemes;
2122
private long processStartedTime;
2223
private long processEndedTime;
2324
private int phpWarnings;
@@ -74,6 +75,24 @@ public void setProcessedModules(final int processedModules) {
7475
this.processedModules = processedModules;
7576
}
7677

78+
/**
79+
* Get processed theme qty.
80+
*
81+
* @return int
82+
*/
83+
public int getProcessedThemes() {
84+
return processedThemes;
85+
}
86+
87+
/**
88+
* Set processed theme qty.
89+
*
90+
* @param processedThemes int
91+
*/
92+
public void setProcessedThemes(final int processedThemes) {
93+
this.processedThemes = processedThemes;
94+
}
95+
7796
/**
7897
* Track time before process is started.
7998
*/

src/com/magento/idea/magento2uct/execution/output/UctReportOutputUtil.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
import com.intellij.codeInspection.ProblemDescriptor;
99
import com.magento.idea.magento2uct.bundles.UctInspectionBundle;
1010
import com.magento.idea.magento2uct.execution.process.OutputWrapper;
11+
import com.magento.idea.magento2uct.execution.scanner.data.ComponentData;
1112
import com.magento.idea.magento2uct.packages.SupportedIssue;
1213
import java.util.LinkedHashMap;
14+
import java.util.Locale;
1315
import java.util.Map;
1416
import org.jetbrains.annotations.NotNull;
1517

@@ -31,10 +33,19 @@ public UctReportOutputUtil(final @NotNull OutputWrapper output) {
3133
/**
3234
* Print module name header.
3335
*
34-
* @param moduleName String
36+
* @param componentData ComponentData
3537
*/
36-
public void printModuleName(final @NotNull String moduleName) {
37-
final String moduleNameLine = "Module Name: ".concat(moduleName);
38+
public void printModuleName(final @NotNull ComponentData componentData) {
39+
final String componentType = componentData.getType().toString();
40+
final String componentTypeFormatted = componentType
41+
.substring(0, 1)
42+
.toUpperCase(new Locale("en","EN"))
43+
.concat(componentType.substring(1));
44+
45+
final String moduleNameLine = componentTypeFormatted
46+
.concat(" Name: ")
47+
.concat(componentData.getName());
48+
3849
stdout.print("\n\n" + stdout.wrapInfo(moduleNameLine).concat("\n"));
3950
stdout.print(stdout.wrapInfo("-".repeat(moduleNameLine.length())).concat("\n"));
4051
}
@@ -80,9 +91,9 @@ public void printIssue(final @NotNull ProblemDescriptor descriptor, final int co
8091
* @param summary Summary
8192
* @param platformName String
8293
*/
83-
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
94+
@SuppressWarnings({"PMD.AvoidInstantiatingObjectsInLoops", "PMD.CyclomaticComplexity"})
8495
public void printSummary(final Summary summary, final String platformName) {
85-
if (summary.getProcessedModules() == 0) {
96+
if (summary.getProcessedModules() == 0 && summary.getProcessedThemes() == 0) {
8697
stdout.print(stdout.wrapInfo("Couldn't find modules to analyse").concat("\n"));
8798
return;
8899
}
@@ -96,6 +107,7 @@ public void printSummary(final Summary summary, final String platformName) {
96107
summaryMap.put(platformName + " version", summary.getTargetVersion());
97108
summaryMap.put("Running time", summary.getProcessRunningTime());
98109
summaryMap.put("Checked modules", String.valueOf(summary.getProcessedModules()));
110+
summaryMap.put("Checked themes", String.valueOf(summary.getProcessedThemes()));
99111
summaryMap.put("Total warnings found", String.valueOf(summary.getPhpWarnings()));
100112
summaryMap.put("Total errors found", String.valueOf(summary.getPhpErrors()));
101113
summaryMap.put("Total critical errors found",

0 commit comments

Comments
 (0)