56 lines
1.3 KiB
PHP
56 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace NoccyLabs\Shell;
|
|
|
|
class Style
|
|
{
|
|
const NONE = null;
|
|
|
|
const BLACK = 0;
|
|
const RED = 1;
|
|
const GREEN = 2;
|
|
const YELLOW = 3;
|
|
const BLUE = 4;
|
|
const CYAN = 5;
|
|
const MAGENTA = 6;
|
|
const WHITE = 7;
|
|
const GRAY = 8;
|
|
const BR_RED = 9;
|
|
const BR_GREEN = 10;
|
|
const BR_YELLOW = 11;
|
|
const BR_BLUE = 12;
|
|
const BR_CYAN = 13;
|
|
const BR_MAGENTA = 14;
|
|
const BR_WHITE = 15;
|
|
|
|
const A_INTENSE = 1;
|
|
const A_UNDERLINE = 4;
|
|
const A_INVERSE = 7;
|
|
|
|
protected $fg = self::NONE;
|
|
|
|
protected $bg = self::NONE;
|
|
|
|
public function __construct($fg=self::NONE, $bg=self::NONE)
|
|
{
|
|
$this->fg = $fg;
|
|
$this->bg = $bg;
|
|
}
|
|
|
|
public function __invoke($string)
|
|
{
|
|
$pre = null; $post = null;
|
|
if ($this->fg !== self::NONE) {
|
|
$pre.= "\e[".(($this->fg > 7)?(90+($this->fg-8)):(30+$this->fg))."m";
|
|
$post.= "\e[39m";
|
|
}
|
|
if ($this->bg !== self::NONE) {
|
|
$pre.= "\e[".(($this->bg > 7)?(100+($this->bg-8)):(40+$this->bg))."m";
|
|
$post.= "\e[49m";
|
|
}
|
|
|
|
return $pre . $string . $post;
|
|
|
|
}
|
|
|
|
} |