Skip to content
This repository was archived by the owner on Jul 16, 2023. It is now read-only.

Commit c9260dc

Browse files
committed
feat: add print config to all commands
1 parent 124ee60 commit c9260dc

37 files changed

+198
-30
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* feat: **Breaking change** change severity for avoid-banned-imports, prefer-trailing-comma, ban-name rules.
1313
* feat: support proxy calls for check-unused-l10n.
1414
* feat: **Breaking change** cleanup public API.
15-
* feat: add `print-config` option to the `analyze` command.
15+
* feat: add `print-config` option to all commands.
1616

1717
## 4.21.2
1818

lib/src/analyzers/unnecessary_nullable_analyzer/unnecessary_nullable_analysis_config.dart

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,18 @@ import 'package:glob/glob.dart';
44
class UnnecessaryNullableAnalysisConfig {
55
final Iterable<Glob> globalExcludes;
66
final Iterable<Glob> analyzerExcludedPatterns;
7+
final bool isMonorepo;
78

89
const UnnecessaryNullableAnalysisConfig(
910
this.globalExcludes,
10-
this.analyzerExcludedPatterns,
11-
);
11+
this.analyzerExcludedPatterns, {
12+
required this.isMonorepo,
13+
});
14+
15+
Map<String, Object?> toJson() => {
16+
'global-excludes': globalExcludes.map((glob) => glob.pattern).toList(),
17+
'analyzer-excluded-patterns':
18+
analyzerExcludedPatterns.map((glob) => glob.pattern).toList(),
19+
'is-monorepo': isMonorepo,
20+
};
1221
}

lib/src/analyzers/unnecessary_nullable_analyzer/unnecessary_nullable_analyzer.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ class UnnecessaryNullableAnalyzer {
6767
final unnecessaryNullableAnalysisConfig =
6868
_getAnalysisConfig(context, rootFolder, config);
6969

70+
if (config.shouldPrintConfig) {
71+
_logger?.printConfig(unnecessaryNullableAnalysisConfig.toJson());
72+
}
73+
7074
final filePaths = getFilePaths(
7175
folders,
7276
context,

lib/src/analyzers/unnecessary_nullable_analyzer/unnecessary_nullable_config.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ class UnnecessaryNullableConfig {
55
final Iterable<String> excludePatterns;
66
final Iterable<String> analyzerExcludePatterns;
77
final bool isMonorepo;
8+
final bool shouldPrintConfig;
89

910
const UnnecessaryNullableConfig({
1011
required this.excludePatterns,
1112
required this.analyzerExcludePatterns,
1213
required this.isMonorepo,
14+
required this.shouldPrintConfig,
1315
});
1416

1517
/// Creates the config from analysis [options].
@@ -21,14 +23,17 @@ class UnnecessaryNullableConfig {
2123
analyzerExcludePatterns:
2224
options.readIterableOfString(['analyzer', 'exclude']),
2325
isMonorepo: false,
26+
shouldPrintConfig: false,
2427
);
2528

2629
/// Creates the config from cli args.
2730
factory UnnecessaryNullableConfig.fromArgs(
2831
Iterable<String> excludePatterns, {
2932
required bool isMonorepo,
33+
required bool shouldPrintConfig,
3034
}) =>
3135
UnnecessaryNullableConfig(
36+
shouldPrintConfig: shouldPrintConfig,
3237
excludePatterns: excludePatterns,
3338
analyzerExcludePatterns: const [],
3439
isMonorepo: isMonorepo,
@@ -46,5 +51,6 @@ class UnnecessaryNullableConfig {
4651
...overrides.analyzerExcludePatterns,
4752
},
4853
isMonorepo: isMonorepo || overrides.isMonorepo,
54+
shouldPrintConfig: shouldPrintConfig || overrides.shouldPrintConfig,
4955
);
5056
}

lib/src/analyzers/unused_code_analyzer/unused_code_analysis_config.dart

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,18 @@ import 'package:glob/glob.dart';
44
class UnusedCodeAnalysisConfig {
55
final Iterable<Glob> globalExcludes;
66
final Iterable<Glob> analyzerExcludedPatterns;
7+
final bool isMonorepo;
78

89
const UnusedCodeAnalysisConfig(
910
this.globalExcludes,
10-
this.analyzerExcludedPatterns,
11-
);
11+
this.analyzerExcludedPatterns, {
12+
required this.isMonorepo,
13+
});
14+
15+
Map<String, Object?> toJson() => {
16+
'global-excludes': globalExcludes.map((glob) => glob.pattern).toList(),
17+
'analyzer-excluded-patterns':
18+
analyzerExcludedPatterns.map((glob) => glob.pattern).toList(),
19+
'is-monorepo': isMonorepo,
20+
};
1221
}

lib/src/analyzers/unused_code_analyzer/unused_code_analyzer.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ class UnusedCodeAnalyzer {
6262
final unusedCodeAnalysisConfig =
6363
_getAnalysisConfig(context, rootFolder, config);
6464

65+
if (config.shouldPrintConfig) {
66+
_logger?.printConfig(unusedCodeAnalysisConfig.toJson());
67+
}
68+
6569
final filePaths = getFilePaths(
6670
folders,
6771
context,

lib/src/analyzers/unused_code_analyzer/unused_code_config.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ class UnusedCodeConfig {
55
final Iterable<String> excludePatterns;
66
final Iterable<String> analyzerExcludePatterns;
77
final bool isMonorepo;
8+
final bool shouldPrintConfig;
89

910
const UnusedCodeConfig({
1011
required this.excludePatterns,
1112
required this.analyzerExcludePatterns,
1213
required this.isMonorepo,
14+
required this.shouldPrintConfig,
1315
});
1416

1517
/// Creates the config from analysis [options].
@@ -19,14 +21,17 @@ class UnusedCodeConfig {
1921
analyzerExcludePatterns:
2022
options.readIterableOfString(['analyzer', 'exclude']),
2123
isMonorepo: false,
24+
shouldPrintConfig: false,
2225
);
2326

2427
/// Creates the config from cli args.
2528
factory UnusedCodeConfig.fromArgs(
2629
Iterable<String> excludePatterns, {
2730
required bool isMonorepo,
31+
required bool shouldPrintConfig,
2832
}) =>
2933
UnusedCodeConfig(
34+
shouldPrintConfig: shouldPrintConfig,
3035
excludePatterns: excludePatterns,
3136
analyzerExcludePatterns: const [],
3237
isMonorepo: isMonorepo,
@@ -43,5 +48,6 @@ class UnusedCodeConfig {
4348
...overrides.analyzerExcludePatterns,
4449
},
4550
isMonorepo: isMonorepo || overrides.isMonorepo,
51+
shouldPrintConfig: shouldPrintConfig || overrides.shouldPrintConfig,
4652
);
4753
}

lib/src/analyzers/unused_files_analyzer/unused_files_analysis_config.dart

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@ import 'package:glob/glob.dart';
33
/// Represents converted unused files config which contains parsed entities.
44
class UnusedFilesAnalysisConfig {
55
final Iterable<Glob> globalExcludes;
6+
final bool isMonorepo;
67

7-
const UnusedFilesAnalysisConfig(this.globalExcludes);
8+
const UnusedFilesAnalysisConfig(
9+
this.globalExcludes, {
10+
required this.isMonorepo,
11+
});
12+
13+
Map<String, Object?> toJson() => {
14+
'global-excludes': globalExcludes.map((glob) => glob.pattern).toList(),
15+
'is-monorepo': isMonorepo,
16+
};
817
}

lib/src/analyzers/unused_files_analyzer/unused_files_analyzer.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ class UnusedFilesAnalyzer {
5454
final unusedFilesAnalysisConfig =
5555
_getAnalysisConfig(context, rootFolder, config);
5656

57+
if (config.shouldPrintConfig) {
58+
_logger?.printConfig(unusedFilesAnalysisConfig.toJson());
59+
}
60+
5761
final filePaths = getFilePaths(
5862
folders,
5963
context,

lib/src/analyzers/unused_files_analyzer/unused_files_config.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ class UnusedFilesConfig {
55
final Iterable<String> excludePatterns;
66
final Iterable<String> analyzerExcludePatterns;
77
final bool isMonorepo;
8+
final bool shouldPrintConfig;
89

910
const UnusedFilesConfig({
1011
required this.excludePatterns,
1112
required this.analyzerExcludePatterns,
1213
required this.isMonorepo,
14+
required this.shouldPrintConfig,
1315
});
1416

1517
/// Creates the config from analysis [options].
@@ -19,14 +21,17 @@ class UnusedFilesConfig {
1921
analyzerExcludePatterns:
2022
options.readIterableOfString(['analyzer', 'exclude']),
2123
isMonorepo: false,
24+
shouldPrintConfig: false,
2225
);
2326

2427
/// Creates the config from cli args.
2528
factory UnusedFilesConfig.fromArgs(
2629
Iterable<String> excludePatterns, {
2730
required bool isMonorepo,
31+
required bool shouldPrintConfig,
2832
}) =>
2933
UnusedFilesConfig(
34+
shouldPrintConfig: shouldPrintConfig,
3035
excludePatterns: excludePatterns,
3136
analyzerExcludePatterns: const [],
3237
isMonorepo: isMonorepo,
@@ -43,5 +48,6 @@ class UnusedFilesConfig {
4348
...overrides.analyzerExcludePatterns,
4449
},
4550
isMonorepo: isMonorepo || overrides.isMonorepo,
51+
shouldPrintConfig: shouldPrintConfig || overrides.shouldPrintConfig,
4652
);
4753
}

lib/src/analyzers/unused_l10n_analyzer/unused_l10n_analysis_config.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,9 @@ class UnusedL10nAnalysisConfig {
1010
this.globalExcludes,
1111
String? classPattern,
1212
) : classPattern = RegExp(classPattern ?? r'I18n$');
13+
14+
Map<String, Object?> toJson() => {
15+
'global-excludes': globalExcludes.map((glob) => glob.pattern).toList(),
16+
'class-pattern': classPattern.pattern,
17+
};
1318
}

lib/src/analyzers/unused_l10n_analyzer/unused_l10n_analyzer.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ class UnusedL10nAnalyzer {
5757
final unusedLocalizationAnalysisConfig =
5858
_getAnalysisConfig(context, rootFolder, config);
5959

60+
if (config.shouldPrintConfig) {
61+
_logger?.printConfig(unusedLocalizationAnalysisConfig.toJson());
62+
}
63+
6064
final filePaths = getFilePaths(
6165
folders,
6266
context,

lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ class UnusedL10nConfig {
55
final Iterable<String> excludePatterns;
66
final Iterable<String> analyzerExcludePatterns;
77
final String? classPattern;
8+
final bool shouldPrintConfig;
89

910
const UnusedL10nConfig({
1011
required this.excludePatterns,
1112
required this.analyzerExcludePatterns,
1213
required this.classPattern,
14+
required this.shouldPrintConfig,
1315
});
1416

1517
/// Creates the config from analysis [options].
@@ -21,14 +23,17 @@ class UnusedL10nConfig {
2123
analyzerExcludePatterns:
2224
options.readIterableOfString(['analyzer', 'exclude']),
2325
classPattern: null,
26+
shouldPrintConfig: false,
2427
);
2528

2629
/// Creates the config from cli args.
2730
factory UnusedL10nConfig.fromArgs(
2831
Iterable<String> excludePatterns,
29-
String classPattern,
30-
) =>
32+
String classPattern, {
33+
required bool shouldPrintConfig,
34+
}) =>
3135
UnusedL10nConfig(
36+
shouldPrintConfig: shouldPrintConfig,
3237
excludePatterns: excludePatterns,
3338
analyzerExcludePatterns: const [],
3439
classPattern: classPattern,
@@ -45,5 +50,6 @@ class UnusedL10nConfig {
4550
...overrides.analyzerExcludePatterns,
4651
},
4752
classPattern: overrides.classPattern ?? classPattern,
53+
shouldPrintConfig: shouldPrintConfig || overrides.shouldPrintConfig,
4854
);
4955
}

lib/src/cli/commands/analyze_command.dart

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,6 @@ class AnalyzeCommand extends BaseCommand {
123123

124124
void _usesReporterOption() {
125125
argParser
126-
..addSeparator('')
127-
..addFlag(
128-
FlagNames.printConfig,
129-
abbr: 'c',
130-
help: 'Print resolved config.',
131-
negatable: false,
132-
)
133126
..addSeparator('')
134127
..addOption(
135128
FlagNames.reporter,

lib/src/cli/commands/base_command.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,25 @@ abstract class BaseCommand extends Command<void> {
8181
}
8282

8383
void addCommonFlags() {
84+
usesPrintConfig();
8485
usesRootFolderOption();
8586
usesSdkPathOption();
8687
usesExcludeOption();
8788
usesCongratulateFlag();
8889
usesVerboseFlag();
8990
}
9091

92+
void usesPrintConfig() {
93+
argParser
94+
..addSeparator('')
95+
..addFlag(
96+
FlagNames.printConfig,
97+
abbr: 'c',
98+
help: 'Print resolved config.',
99+
negatable: false,
100+
);
101+
}
102+
91103
void usesRootFolderOption() {
92104
argParser
93105
..addSeparator('')

lib/src/cli/commands/check_unnecessary_nullable_command.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ class CheckUnnecessaryNullableCommand extends BaseCommand {
4242
final excludePath = argResults[FlagNames.exclude] as String;
4343
final reporterName = argResults[FlagNames.reporter] as String;
4444
final isMonorepo = argResults[FlagNames.isMonorepo] as bool;
45+
final shouldPrintConfig = argResults[FlagNames.printConfig] as bool;
4546

4647
final config = ConfigBuilder.getUnnecessaryNullableConfigFromArgs(
4748
[excludePath],
4849
isMonorepo: isMonorepo,
50+
shouldPrintConfig: shouldPrintConfig,
4951
);
5052

5153
final unusedCodeResult = await _analyzer.runCliAnalysis(

lib/src/cli/commands/check_unused_code_command.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,12 @@ class CheckUnusedCodeCommand extends BaseCommand {
4141
final excludePath = argResults[FlagNames.exclude] as String;
4242
final reporterName = argResults[FlagNames.reporter] as String;
4343
final isMonorepo = argResults[FlagNames.isMonorepo] as bool;
44+
final shouldPrintConfig = argResults[FlagNames.printConfig] as bool;
4445

4546
final config = ConfigBuilder.getUnusedCodeConfigFromArgs(
4647
[excludePath],
4748
isMonorepo: isMonorepo,
49+
shouldPrintConfig: shouldPrintConfig,
4850
);
4951

5052
final unusedCodeResult = await _analyzer.runCliAnalysis(

lib/src/cli/commands/check_unused_files_command.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ class CheckUnusedFilesCommand extends BaseCommand {
4242
final reporterName = argResults[FlagNames.reporter] as String;
4343
final isMonorepo = argResults[FlagNames.isMonorepo] as bool;
4444
final deleteFiles = argResults[FlagNames.deleteFiles] as bool;
45+
final shouldPrintConfig = argResults[FlagNames.printConfig] as bool;
4546

4647
final config = ConfigBuilder.getUnusedFilesConfigFromArgs(
4748
[excludePath],
4849
isMonorepo: isMonorepo,
50+
shouldPrintConfig: shouldPrintConfig,
4951
);
5052

5153
final unusedFilesResult = await _analyzer.runCliAnalysis(

lib/src/cli/commands/check_unused_l10n_command.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,14 @@ class CheckUnusedL10nCommand extends BaseCommand {
4040
final classPattern = argResults[FlagNames.l10nClassPattern] as String;
4141
final excludePath = argResults[FlagNames.exclude] as String;
4242
final reporterName = argResults[FlagNames.reporter] as String;
43+
final shouldPrintConfig = argResults[FlagNames.printConfig] as bool;
4344

4445
final folders = argResults.rest;
4546

4647
final config = ConfigBuilder.getUnusedL10nConfigFromArgs(
4748
[excludePath],
4849
classPattern,
50+
shouldPrintConfig: shouldPrintConfig,
4951
);
5052

5153
final unusedL10nResult = await _analyzer.runCliAnalysis(

0 commit comments

Comments
 (0)