Improve the error message when a target is specified but not found.

https://github.com/flutter/flutter/issues/2368
This commit is contained in:
Steve Messick 2016-03-07 05:58:02 -08:00
parent 8cc5312054
commit 913315bc87
2 changed files with 9 additions and 3 deletions

View file

@ -21,7 +21,7 @@ abstract class FlutterCommand extends Command {
FlutterCommandRunner get runner => super.runner;
/// Whether this command needs to be run from the root of a project.
bool get requiresProjectRoot => !_targetSpecified;
bool get requiresProjectRoot => true;
/// Whether this command requires a (single) Flutter target device to be connected.
bool get requiresDevice => false;
@ -29,6 +29,10 @@ abstract class FlutterCommand extends Command {
/// Whether this command only applies to Android devices.
bool get androidOnly => false;
/// Whether this command allows usage of the 'target' option.
bool get allowsTarget => _targetOptionSpecified;
bool _targetOptionSpecified = false;
List<BuildConfiguration> get buildConfigurations => runner.buildConfigurations;
Future downloadToolchain() async {
@ -59,7 +63,8 @@ abstract class FlutterCommand extends Command {
}
Future<int> _run() async {
if (requiresProjectRoot && !projectRootValidator())
bool _checkRoot = requiresProjectRoot && allowsTarget && !_targetSpecified;
if (_checkRoot && !projectRootValidator())
return 1;
// Ensure at least one toolchain is installed.
@ -152,5 +157,6 @@ abstract class FlutterCommand extends Command {
callback: (val) => _targetSpecified = true,
defaultsTo: flx.defaultMainPath,
help: 'Target app path / main entry-point file.');
_targetOptionSpecified = true;
}
}

View file

@ -13,7 +13,7 @@ main() => defineTests();
defineTests() {
group('run', () {
testUsingContext('fail when target not found', () {
testUsingContext('fails when target not found', () {
RunCommand command = new RunCommand();
applyMocksToCommand(command);
return createTestCommandRunner(command).run(<String>['run', '-t', 'abc123']).then((int code) {