/** * Gets an instance of a Task. * * @param string|array $taskData * @param \Mage\Config $taskConfig * @param boolean $inRollback * @param string $stage * @return \Mage\Task\AbstractTask * @throws \Exception */ public static function get($taskData, Config $taskConfig, $inRollback = false, $stage = null) { if (is_array($taskData)) { $taskName = $taskData['name']; $taskParameters = $taskData['parameters']; } else { $taskName = $taskData; $taskParameters = array(); } $instance = null; $taskName = ucwords(str_replace('-', ' ', $taskName)); $taskName = str_replace(' ', '', $taskName); $patterns = []; if (is_array($taskConfig->general('taskPatterns'))) { $patterns = $taskConfig->general('taskPatterns'); } $patterns[] = 'Task\\%s'; $patterns[] = 'Mage\\Task\\BuiltIn\\%sTask'; $className = null; $taskClass = trim($taskName, '/\\'); $taskClass = str_replace(' ', '\\', ucwords(str_replace('/', ' ', $taskClass))); $taskClass = str_replace(' ', '', ucwords(str_replace('-', ' ', $taskClass))); foreach ($patterns as $pattern) { $possibleClass = sprintf($pattern, $taskClass); if (class_exists($possibleClass)) { $className = $possibleClass; break; } } if (!$className) { throw new Exception('Task "' . $taskName . '" not found.'); } $instance = new $className($taskConfig, $inRollback, $stage, $taskParameters); if (!$instance instanceof AbstractTask) { throw new Exception('The Task ' . $taskName . ' must be an instance of Mage\\Task\\AbstractTask.'); } return $instance; }
/** * 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("[" . $code . 'm', "[0m"); $string = str_replace($replaceFrom, $replaceTo, $string); } return $string; }
/** * Check Logs * @param \Mage\Config $config */ private static function checkLogs(Config $config) { if (self::$logEnabled) { $maxLogs = $config->general('maxlogs', 30); $logs = array(); foreach (new RecursiveDirectoryIterator(getcwd() . '/.mage/logs', RecursiveDirectoryIterator::SKIP_DOTS) as $log) { /* @var $log SplFileInfo */ if (strpos($log->getFilename(), 'log-') === 0) { $logs[] = $log->getFilename(); } } sort($logs); if (count($logs) > $maxLogs) { $logsToDelete = array_slice($logs, 0, count($logs) - $maxLogs); foreach ($logsToDelete as $logToDeelte) { unlink(getcwd() . '/.mage/logs/' . $logToDeelte); } } } }
/** * Check if verbose logging is enabled * * @return boolean */ protected static function isVerboseLoggingEnabled() { return self::$config->getParameter('verbose', false) || self::$config->general('verbose_logging') || self::$config->environmentConfig('verbose_logging', false); }