Make sure `flutter update-packages --verify-only` has a non-zero exit code (#15962) * make sure --verify-only logs error messages and fix typo * ensure non zero exit code * undo random pubspec change
diff --git a/packages/flutter_tools/lib/src/commands/update_packages.dart b/packages/flutter_tools/lib/src/commands/update_packages.dart index 20d39e9..97730ef 100644 --- a/packages/flutter_tools/lib/src/commands/update_packages.dart +++ b/packages/flutter_tools/lib/src/commands/update_packages.dart
@@ -101,6 +101,7 @@ final bool isVerifyOnly = argResults['verify-only']; if (isVerifyOnly) { + bool needsUpdate = false; printStatus('Verifying pubspecs...'); for (Directory directory in packages) { final PubspecYaml pubspec = new PubspecYaml(directory); @@ -126,15 +127,23 @@ if (checksum != pubspec.checksum.value) { // If the checksum doesn't match, they may have added or removed some dependencies. // we need to run update-packages to recapture the transitive deps. - printStatus( + printError( 'Warning: pubspec in ${directory.path} has invalid dependencies. ' - 'Please run "flutter update-packages" --force-upgrade to update them correctly.' + 'Please run "flutter update-packages --force-upgrade" to update them correctly.' ); + needsUpdate = true; } else { // everything is correct in the pubspec. printStatus('pubspec in ${directory.path} is up to date!'); } } + if (needsUpdate) { + throwToolExit( + 'Warning: one or more pubspecs have invalid dependencies. ' + 'Please run "flutter update-packages --force-upgrade" to update them correctly.', + exitCode: 1, + ); + } return; }