mirror of https://github.com/hauke68/Magallanes
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.8 KiB
78 lines
1.8 KiB
<?php |
|
/* |
|
* This file is part of the Magallanes package. |
|
* |
|
* (c) Andrés Montañez <andres@andresmontanez.com> |
|
* |
|
* For the full copyright and license information, please view the LICENSE |
|
* file that was distributed with this source code. |
|
*/ |
|
|
|
namespace Mage\Console; |
|
|
|
use Mage\Config; |
|
|
|
/** |
|
* Parses the different colors available for the Terminal or Console. |
|
* |
|
* @author Andrés Montañez <andres@andresmontanez.com> |
|
*/ |
|
class Colors |
|
{ |
|
/** |
|
* List of Colors and they Terminal/Console representation. |
|
* @var array |
|
*/ |
|
private static $foregroundColors = array( |
|
'black' => '0;30', |
|
'bold' => '1', |
|
'blue' => '0;34', |
|
'light_blue' => '1;34', |
|
'green' => '0;32', |
|
'light_green' => '1;32', |
|
'cyan' => '0;36', |
|
'light_cyan' => '1;36', |
|
'red' => '0;31', |
|
'light_red' => '1;31', |
|
'purple' => '0;35', |
|
'light_purple' => '1;35', |
|
'brown' => '0;33', |
|
'yellow' => '1;33', |
|
'light_gray' => '0;37', |
|
'white' => '1;37' |
|
|
|
); |
|
|
|
/** |
|
* Parses a Text to represent Colors in the Terminal/Console. |
|
* |
|
* @param string $string |
|
* @param Config $config |
|
* @return string |
|
*/ |
|
public static function color($string, Config $config) |
|
{ |
|
$disabled = $config->getParameter('no-color', !$config->general('colors', true)); |
|
|
|
if ($disabled) { |
|
$string = strip_tags($string); |
|
return $string; |
|
} |
|
|
|
foreach (self::$foregroundColors as $key => $code) { |
|
$replaceFrom = array( |
|
'<' . $key . '>', |
|
'</' . $key . '>' |
|
); |
|
|
|
$replaceTo = array( |
|
"\033[" . $code . 'm', |
|
"\033[0m" |
|
); |
|
|
|
$string = str_replace($replaceFrom, $replaceTo, $string); |
|
} |
|
|
|
return $string; |
|
} |
|
}
|
|
|