tweak the layout for the ios doctor checks (#9306)
diff --git a/packages/flutter_tools/lib/src/base/logger.dart b/packages/flutter_tools/lib/src/base/logger.dart index 4cb5b4a..b668ef2 100644 --- a/packages/flutter_tools/lib/src/base/logger.dart +++ b/packages/flutter_tools/lib/src/base/logger.dart
@@ -271,10 +271,14 @@ String bolden(String message) { if (!supportsColor) return message; - final StringBuffer result = new StringBuffer(); + final StringBuffer buffer = new StringBuffer(); for (String line in message.split('\n')) - result.writeln('$_bold$line$_reset'); - return result.toString(); + buffer.writeln('$_bold$line$_reset'); + final String result = buffer.toString(); + // avoid introducing a new newline to the emboldened text + return (!message.endsWith('\n') && result.endsWith('\n')) + ? result.substring(0, result.length - 1) + : result; } String clearScreen() => supportsColor ? _clear : '\n\n';
diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index 4e633aa..3bac2cc 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart
@@ -108,14 +108,9 @@ /// Print verbose information about the state of installed tooling. Future<bool> diagnose() async { - bool firstLine = true; bool doctorResult = true; for (DoctorValidator validator in validators) { - if (!firstLine) - printStatus(''); - firstLine = false; - final ValidationResult result = await validator.validate(); if (result.type == ValidationType.missing) @@ -134,6 +129,8 @@ printStatus(' • $text'); } } + + printStatus(''); } return doctorResult;
diff --git a/packages/flutter_tools/lib/src/ios/ios_workflow.dart b/packages/flutter_tools/lib/src/ios/ios_workflow.dart index ba4d2d9..018469d 100644 --- a/packages/flutter_tools/lib/src/ios/ios_workflow.dart +++ b/packages/flutter_tools/lib/src/ios/ios_workflow.dart
@@ -136,9 +136,9 @@ messages.add(new ValidationMessage.error( 'ideviceinstaller not available; this is used to discover connected iOS devices.\n' 'To install, run:\n' - 'brew update\n' - 'brew install --HEAD libimobiledevice\n' - 'brew install ideviceinstaller' + ' brew update\n' + ' brew install --HEAD libimobiledevice\n' + ' brew install ideviceinstaller' )); } @@ -151,14 +151,14 @@ if (hasIosDeploy) { messages.add(new ValidationMessage.error( 'ios-deploy out of date ($iosDeployMinimumVersion is required). To upgrade:\n' - 'brew update\n' - 'brew upgrade ios-deploy' + ' brew update\n' + ' brew upgrade ios-deploy' )); } else { messages.add(new ValidationMessage.error( 'ios-deploy not installed. To install:\n' - 'brew update\n' - 'brew install ios-deploy' + ' brew update\n' + ' brew install ios-deploy' )); } } else { @@ -169,9 +169,9 @@ brewStatus = ValidationType.partial; messages.add(new ValidationMessage.error( 'libimobiledevice is incompatible with the installed Xcode version. To update, run:\n' - 'brew update\n' - 'brew uninstall --ignore-dependencies libimobiledevice\n' - 'brew install --HEAD libimobiledevice' + ' brew update\n' + ' brew uninstall --ignore-dependencies libimobiledevice\n' + ' brew install --HEAD libimobiledevice' )); } } @@ -182,16 +182,16 @@ if (!hasCocoaPods) { messages.add(new ValidationMessage.error( 'CocoaPods not installed. To install:\n' - 'brew update\n' - 'brew install cocoapods\n' - 'pod setup' + ' brew update\n' + ' brew install cocoapods\n' + ' pod setup' )); } else { messages.add(new ValidationMessage.error( 'CocoaPods out of date ($cocoaPodsMinimumVersion is required). To upgrade:\n' - 'brew update\n' - 'brew upgrade cocoapods\n' - 'pod setup' + ' brew update\n' + ' brew upgrade cocoapods\n' + ' pod setup' )); } }