diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 7cf84f3f78..6615b960a8 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -81,8 +81,11 @@ class RunCommand extends RunCommandBase { @override Future run() async { - if (argResults['pub']) - await pubGet(); + if (argResults['pub']) { + int exitCode = await pubGet(); + if (exitCode != 0) + return exitCode; + } return await super.run(); } diff --git a/packages/flutter_tools/lib/src/commands/update_packages.dart b/packages/flutter_tools/lib/src/commands/update_packages.dart index d49bc48953..a17823d59b 100644 --- a/packages/flutter_tools/lib/src/commands/update_packages.dart +++ b/packages/flutter_tools/lib/src/commands/update_packages.dart @@ -15,6 +15,8 @@ Future _runPub(Directory directory, { bool upgrade: false }) async { for (FileSystemEntity dir in directory.listSync()) { if (dir is Directory && FileSystemEntity.isFileSync(dir.path + Platform.pathSeparator + 'pubspec.yaml')) { updateCount++; + // TODO(eseidel): Should this fail immediately if pubGet fails? + // Currently we're ignoring the return code. await pubGet(directory: dir.path, upgrade: upgrade, checkLastModified: false); } }