Beispiel #1
0
 /**
  * Lists one or more tasks with their scheduled run times.
  *
  * @param null $task
  * @return mixed
  */
 public function show($task = null)
 {
     if (empty($task)) {
         return $this->listTaskNames();
     }
     if (trim(strtolower($task)) == 'all') {
         $tasks = \Myth\Cron\CronManager::listAll();
     } else {
         $tasks = \Myth\Cron\CronManager::task($task);
     }
     if (!is_array($tasks)) {
         $tasks = [$task => ['next_run' => $tasks->nextRunDate(), 'prev_run' => $tasks->previousRunDate()]];
     }
     if (!count($tasks)) {
         return CLI::found('No tasks found.', 'red');
     }
     $suspended = Settings::get('suspended_tasks', 'cron');
     if (empty($suspended)) {
         $suspended = [];
     }
     /*
      * Headers
      */
     echo CLI::write("Task\t\t\t\tNext Run\t\tPrevious Run");
     echo CLI::write(str_repeat('-', 80));
     foreach ($tasks as $alias => $task) {
         // Suspended?
         $color = 'yellow';
         $extra = '';
         if (in_array($alias, $suspended)) {
             $color = 'blue';
             $extra = "\t[Suspended]";
         }
         // Alias can only be 24 chars long.
         $alias = strlen($alias) >= 32 ? substr($alias, 0, 28) . '... ' : $alias . str_repeat(" ", 32 - strlen($alias));
         $next = date('D Y-m-d H:i', $task['next_run']);
         $prev = date('D Y-m-d H:i', $task['prev_run']);
         echo CLI::write("{$alias}{$next}\t{$prev}{$extra}", $color);
     }
 }