blob: 8b0913ca63854154a3a167ace62400b1b84240d2 [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. 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';
final _cyan = _getSpecial('\u001b[36m');
final _green = _getSpecial('\u001b[32m');
final _magenta = _getSpecial('\u001b[35m');
final _red = _getSpecial('\u001b[31m');
final _yellow = _getSpecial('\u001b[33m');
final _blue = _getSpecial('\u001b[34m');
final _gray = _getSpecial('\u001b[1;30m');
final _none = _getSpecial('\u001b[0m');
final _noColor = _getSpecial('\u001b[39m');
final _bold = _getSpecial('\u001b[1m');
void done(Object message) {
print(" ${green('(DONE)')} $message");
}
void note(Object message) {
print(" ${cyan('(NOTE)')} $message");
}
void todo(Object message) {
print(" ${red('(TODO)')} $message");
}
String bold(text) => "$_bold$text$_none";
String cyan(text) => "$_cyan$text$_noColor";
String green(text) => "$_green$text$_noColor";
String red(text) => "$_red$text$_noColor";
/// Gets a "special" string (ANSI escape or Unicode).
///
/// On Windows or when not printing to a terminal, returns something else since
/// those aren't supported.
String _getSpecial(String special, [String onWindows = '']) {
if (Platform.operatingSystem == 'windows' ||
stdioType(stdout) != StdioType.TERMINAL) {
return onWindows;
}
return special;
}