@@ -13,11 +13,6 @@ void main(List<String> arguments) async {
13
13
14
14
final ArgResults argResults = parser.parse (arguments);
15
15
16
- if (argResults['all' ] as bool && argResults['none' ] as bool ) {
17
- print ('Error: --all and --none are mutually exclusive.' );
18
- exit (1 );
19
- }
20
-
21
16
final packages = loadPackagesFromPubspec ();
22
17
23
18
if (argResults['help' ] as bool ) {
@@ -33,10 +28,14 @@ void main(List<String> arguments) async {
33
28
return ;
34
29
}
35
30
36
- for (final task in tasks) {
37
- if (task.shouldRun (argResults)) {
38
- await task.run (packages: packages, argResults: argResults);
39
- }
31
+ final tasksToRun = tasks.where ((task) => task.shouldRun (argResults)).toList ();
32
+ if (tasksToRun.isEmpty) {
33
+ print ('No tasks specified. Please specify at least one task to run.' );
34
+ exit (1 );
35
+ }
36
+
37
+ for (final task in tasksToRun) {
38
+ await task.run (packages: packages, argResults: argResults);
40
39
}
41
40
}
42
41
@@ -52,19 +51,9 @@ ArgParser makeArgParser() {
52
51
'all' ,
53
52
negatable: false ,
54
53
help: 'Enable all tasks. Overridden by --no-<task> flags.' ,
55
- )
56
- ..addFlag (
57
- 'none' ,
58
- negatable: false ,
59
- help: 'Disable all tasks. Overridden by --<task> flags.' ,
60
54
);
61
55
for (final task in tasks) {
62
- parser.addFlag (
63
- task.name,
64
- help:
65
- '${task .helpMessage }\n '
66
- '(defaults to ${task .defaultValue })' ,
67
- );
56
+ parser.addFlag (task.name, help: task.helpMessage);
68
57
}
69
58
return parser;
70
59
}
@@ -84,35 +73,21 @@ abstract class Task {
84
73
/// For example, a name of 'analyze' corresponds to the `--[no-]analyze` flag.
85
74
final String name;
86
75
87
- /// The default state of the task if no master flag (`--all` or `--none` ) is
88
- /// provided.
89
- final bool defaultValue;
90
-
91
76
/// The base help message for the task's command-line flag.
92
- ///
93
- /// The `(defaults to ...)` text is added automatically.
94
77
final String helpMessage;
95
78
96
- const Task ({
97
- required this .name,
98
- required this .defaultValue,
99
- required this .helpMessage,
100
- });
79
+ const Task ({required this .name, required this .helpMessage});
101
80
102
81
bool shouldRun (ArgResults argResults) {
103
- final useNone = argResults['none' ] as bool ;
104
82
final useAll = argResults['all' ] as bool ;
105
83
106
84
if (argResults.wasParsed (name)) {
107
85
return argResults[name] as bool ;
108
86
}
109
- if (useNone) {
110
- return false ;
111
- }
112
87
if (useAll) {
113
88
return true ;
114
89
}
115
- return defaultValue ;
90
+ return false ;
116
91
}
117
92
118
93
Future <void > run ({
@@ -128,7 +103,6 @@ class PubTask extends Task {
128
103
const PubTask ()
129
104
: super (
130
105
name: 'pub' ,
131
- defaultValue: false ,
132
106
helpMessage:
133
107
'Run `dart pub get` on the root and non-workspace packages.\n '
134
108
'Run `dart pub global activate coverage`.' ,
@@ -155,7 +129,6 @@ class AnalyzeTask extends Task {
155
129
const AnalyzeTask ()
156
130
: super (
157
131
name: 'analyze' ,
158
- defaultValue: true ,
159
132
helpMessage: 'Run `dart analyze` on the packages.' ,
160
133
);
161
134
@@ -171,11 +144,7 @@ class AnalyzeTask extends Task {
171
144
/// Checks for code formatting issues with `dart format` .
172
145
class FormatTask extends Task {
173
146
const FormatTask ()
174
- : super (
175
- name: 'format' ,
176
- defaultValue: true ,
177
- helpMessage: 'Run `dart format` on the packages.' ,
178
- );
147
+ : super (name: 'format' , helpMessage: 'Run `dart format` on the packages.' );
179
148
180
149
@override
181
150
Future <void > run ({
@@ -196,11 +165,7 @@ class FormatTask extends Task {
196
165
/// This is used to keep generated files in sync with their sources.
197
166
class GenerateTask extends Task {
198
167
const GenerateTask ()
199
- : super (
200
- name: 'generate' ,
201
- defaultValue: true ,
202
- helpMessage: 'Run code generation scripts.' ,
203
- );
168
+ : super (name: 'generate' , helpMessage: 'Run code generation scripts.' );
204
169
205
170
@override
206
171
Future <void > run ({
@@ -226,7 +191,6 @@ class TestTask extends Task {
226
191
const TestTask ()
227
192
: super (
228
193
name: 'test' ,
229
- defaultValue: true ,
230
194
helpMessage:
231
195
'Run `dart test` on the packages.\n '
232
196
'Implied by --coverage.' ,
@@ -259,7 +223,6 @@ class ExampleTask extends Task {
259
223
const ExampleTask ()
260
224
: super (
261
225
name: 'example' ,
262
- defaultValue: true ,
263
226
helpMessage: 'Run tests and executables for examples.' ,
264
227
);
265
228
@@ -317,7 +280,6 @@ class CoverageTask extends Task {
317
280
const CoverageTask ()
318
281
: super (
319
282
name: 'coverage' ,
320
- defaultValue: false ,
321
283
helpMessage:
322
284
'Collect coverage information on the packages.\n '
323
285
'Implies --test.' ,
0 commit comments