diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 779e5896309..b99cce6243c 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -160,7 +160,7 @@ class AndroidDevice extends Device { return true; printError('The ADB at "${getAdbPath(androidSdk)}" is too old; please install version 1.0.32 or later.'); } catch (error, trace) { - printError('Error running ADB: $error', trace); + printError('Error running ADB: $error', stackTrace: trace); } return false; diff --git a/packages/flutter_tools/lib/src/application_package.dart b/packages/flutter_tools/lib/src/application_package.dart index 52923ba6578..fbdc2b68e94 100644 --- a/packages/flutter_tools/lib/src/application_package.dart +++ b/packages/flutter_tools/lib/src/application_package.dart @@ -155,7 +155,7 @@ abstract class IOSApp extends ApplicationPackage { final Directory payloadDir = fs.directory(fs.path.join(tempDir.path, 'Payload')); bundleDir = payloadDir.listSync().singleWhere(_isBundleDirectory); } on StateError catch (e, stackTrace) { - printError('Invalid prebuilt iOS binary: ${e.toString()}', stackTrace); + printError('Invalid prebuilt iOS binary: ${e.toString()}', stackTrace: stackTrace); return null; } diff --git a/packages/flutter_tools/lib/src/base/logger.dart b/packages/flutter_tools/lib/src/base/logger.dart index 35bc8b8c79c..9133e165fa7 100644 --- a/packages/flutter_tools/lib/src/base/logger.dart +++ b/packages/flutter_tools/lib/src/base/logger.dart @@ -25,7 +25,7 @@ abstract class Logger { /// Display an error level message to the user. Commands should use this if they /// fail in some way. - void printError(String message, [StackTrace stackTrace]); + void printError(String message, { StackTrace stackTrace, bool emphasis: false }); /// Display normal output of the command. This should be used for things like /// progress messages, success messages, or just normal command output. @@ -60,10 +60,12 @@ class StdoutLogger extends Logger { bool get isVerbose => false; @override - void printError(String message, [StackTrace stackTrace]) { + void printError(String message, { StackTrace stackTrace, bool emphasis: false }) { _status?.cancel(); _status = null; + if (emphasis) + message = terminal.bolden(message); stderr.writeln(message); if (stackTrace != null) stderr.writeln(stackTrace.toString()); @@ -144,7 +146,10 @@ class BufferLogger extends Logger { String get traceText => _trace.toString(); @override - void printError(String message, [StackTrace stackTrace]) => _error.writeln(message); + void printError(String message, { StackTrace stackTrace, bool emphasis: false }) { + _error.writeln(message); + } + @override void printStatus( @@ -185,7 +190,7 @@ class VerboseLogger extends Logger { bool get isVerbose => true; @override - void printError(String message, [StackTrace stackTrace]) { + void printError(String message, { StackTrace stackTrace, bool emphasis: false }) { _emit(_LogType.error, message, stackTrace); } diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index 894a1c0ebb5..9c94345b362 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart @@ -66,7 +66,7 @@ class DaemonCommand extends FlutterCommand { } dynamic _handleError(dynamic error, StackTrace stackTrace) { - printError('Error from flutter daemon: $error', stackTrace); + printError('Error from flutter daemon: $error', stackTrace: stackTrace); return null; } } @@ -690,7 +690,7 @@ class NotifyingLogger extends Logger { Stream get onMessage => _messageController.stream; @override - void printError(String message, [StackTrace stackTrace]) { + void printError(String message, { StackTrace stackTrace, bool emphasis: false }) { _messageController.add(new LogMessage('error', message, stackTrace)); } @@ -757,7 +757,7 @@ class _AppRunLogger extends Logger { int _nextProgressId = 0; @override - void printError(String message, [StackTrace stackTrace]) { + void printError(String message, { StackTrace stackTrace, bool emphasis: false }) { if (logToStdout) { stderr.writeln(message); if (stackTrace != null) diff --git a/packages/flutter_tools/lib/src/globals.dart b/packages/flutter_tools/lib/src/globals.dart index 33347982486..f4beb35ca55 100644 --- a/packages/flutter_tools/lib/src/globals.dart +++ b/packages/flutter_tools/lib/src/globals.dart @@ -15,7 +15,11 @@ Artifacts get artifacts => Artifacts.instance; /// Display an error level message to the user. Commands should use this if they /// fail in some way. -void printError(String message, [StackTrace stackTrace]) => logger.printError(message, stackTrace); +/// +/// Set `emphasis` to true to make the output bold if it's supported. +void printError(String message, { StackTrace stackTrace, bool emphasis: false }) { + logger.printError(message, stackTrace: stackTrace, emphasis: emphasis); +} /// Display normal output of the command. This should be used for things like /// progress messages, success messages, or just normal command output.