diff --git a/packages/flutter_tools/lib/src/commands/analyze.dart b/packages/flutter_tools/lib/src/commands/analyze.dart index e3fd3e6a6ff..a61c39568e6 100644 --- a/packages/flutter_tools/lib/src/commands/analyze.dart +++ b/packages/flutter_tools/lib/src/commands/analyze.dart @@ -112,6 +112,7 @@ class AnalyzeCommand extends FlutterCommand { argParser.addFlag('preamble', help: 'Display the number of files that will be analyzed.', defaultsTo: true); argParser.addFlag('congratulate', help: 'Show output even when there are no errors, warnings, hints, or lints.', defaultsTo: true); argParser.addFlag('watch', help: 'Run analysis continuously, watching the filesystem for changes.', negatable: false); + usesPubOption(); } @override @@ -120,6 +121,19 @@ class AnalyzeCommand extends FlutterCommand { @override String get description => 'Analyze the project\'s Dart code.'; + @override + bool get shouldRunPub { + // If they're not analyzing the current project. + if (!argResults['current-package']) + return false; + + // Or we're not in a project directory. + if (!new File('pubspec.yaml').existsSync()) + return false; + + return super.shouldRunPub; + } + @override bool get requiresProjectRoot => false; diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index cf5d98dfb27..9da668a2b18 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart @@ -22,6 +22,7 @@ class TestCommand extends FlutterCommand { help: 'Run tests from the \'flutter\' package in the Flutter repository instead of the current directory.', defaultsTo: false ); + usesPubOption(); } @override @@ -30,6 +31,9 @@ class TestCommand extends FlutterCommand { @override String get description => 'Run Flutter unit tests for the current project (Linux only).'; + @override + bool get shouldRunPub => !argResults['flutter-repo'] && super.shouldRunPub; + @override bool get requiresProjectRoot => false; diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index 73bc0c4c239..a2b3f48bba8 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -41,6 +41,8 @@ abstract class FlutterCommand extends Command { bool _usesPubOption = false; + bool get shouldRunPub => _usesPubOption && argResults['pub']; + List get buildConfigurations => runner.buildConfigurations; void usesTargetOption() { @@ -120,7 +122,7 @@ abstract class FlutterCommand extends Command { } } - if (_usesPubOption && argResults['pub']) { + if (shouldRunPub) { int exitCode = await pubGet(); if (exitCode != 0) return exitCode;