| // 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; |
| } |