/** * Transform text to bash format * * @param $text * @param array $options * * @return string * @throws InvalidArgumentException */ public static function transformText($text, $options = array()) { foreach ($options as $option) { $invalid = !ForegroundColor::isValid($option); $invalid = $invalid && !BackgroundColor::isValid($option); $invalid = $invalid && !TextEffect::isValid($option); $invalid = $invalid && !TextReset::isValid($option); if ($invalid) { throw new InvalidArgumentException('Invalid option provided'); } if (TextReset::isValid($option)) { $text .= self::getOption($option); } else { $text = self::getOption($option) . $text; } } return $text; }