Run command validation on all commands. (#12246)
This makes command validation happen as part of `verifyThenRunCommand()`,
using a newly introduced protected method (`validateCommand()`) rather than
a `commandValidator` property (that subclasses were responsible for manually
invoking).
diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart
index aef95a3..06dd9e4 100644
--- a/packages/flutter_tools/lib/src/commands/build.dart
+++ b/packages/flutter_tools/lib/src/commands/build.dart
@@ -33,21 +33,12 @@
final String description = 'Flutter build commands.';
@override
- Future<Null> verifyThenRunCommand() async {
- commandValidator();
- return super.verifyThenRunCommand();
- }
-
- @override
Future<Null> runCommand() async { }
}
abstract class BuildSubCommand extends FlutterCommand {
- @override
- @mustCallSuper
- Future<Null> verifyThenRunCommand() async {
- commandValidator();
- return super.verifyThenRunCommand();
+ BuildSubCommand() {
+ requiresPubspecYaml();
}
@override
@@ -72,6 +63,10 @@
}
class BuildCleanCommand extends FlutterCommand {
+ BuildCleanCommand() {
+ requiresPubspecYaml();
+ }
+
@override
final String name = 'clean';
@@ -79,12 +74,6 @@
final String description = 'Delete the build/ directory.';
@override
- Future<Null> verifyThenRunCommand() async {
- commandValidator();
- return super.verifyThenRunCommand();
- }
-
- @override
Future<Null> runCommand() async {
final Directory buildDir = fs.directory(getBuildDirectory());
printStatus("Deleting '${buildDir.path}${fs.path.separator}'.");