Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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', "");
         $string = str_replace($replaceFrom, $replaceTo, $string);
     }
     return $string;
 }
Esempio n. 3
0
 /**
  * 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);
             }
         }
     }
 }
Esempio n. 4
0
 /**
  * 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);
 }