blob: 7fd39f6854ef44608157758798dd778c3cb41f76 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:io';
import 'package:colorize/colorize.dart';
import 'package:meta/meta.dart';
export 'package:colorize/colorize.dart' show Styles;
/// True if color should be applied.
///
/// Defaults to autodetecting stdout.
@visibleForTesting
bool useColorForOutput = stdout.supportsAnsiEscapes;
String _colorizeIfAppropriate(String string, Styles color) {
if (!useColorForOutput) {
return string;
}
return Colorize(string).apply(color).toString();
}
/// Prints [message] in green, if the environment supports color.
void printSuccess(String message) {
print(_colorizeIfAppropriate(message, Styles.GREEN));
}
/// Prints [message] in yellow, if the environment supports color.
void printWarning(String message) {
print(_colorizeIfAppropriate(message, Styles.YELLOW));
}
/// Prints [message] in red, if the environment supports color.
void printError(String message) {
print(_colorizeIfAppropriate(message, Styles.RED));
}
/// Returns [message] with escapes to print it in [color], if the environment
/// supports color.
String colorizeString(String message, Styles color) {
return _colorizeIfAppropriate(message, color);
}