diff --git a/dev/TaskRunner.php b/dev/TaskRunner.php index 67fafd32c..799bd2a83 100644 --- a/dev/TaskRunner.php +++ b/dev/TaskRunner.php @@ -43,7 +43,7 @@ class TaskRunner extends Controller { echo "
";
- echo "" . $task['title'] . "
";
+ echo "" . $task['title'] . "
";
echo "" . $task['description'] . "";
echo "
{$title} is disabled
"; - } else { - echo "Build task '$taskName' not found."; - if(class_exists($taskName)) echo " It isn't a subclass of BuildTask."; - echo "\n"; + $title = function ($content) { + printf(Director::is_cli() ? "%s\n\n" : '%s
', $content); + }; + + foreach ($tasks as $task) { + if ($task['segment'] == $name) { + $inst = Injector::inst()->create($task['class']); + $title(sprintf('Running Task %s', $inst->getTitle())); + + if (!$inst->isEnabled()) { + $message('The task is disabled'); + return; + } + + $inst->run($request); + return; + } } + + $message(sprintf('The build task "%s" could not be found', $name)); } - + /** * @return array Array of associative arrays for each task (Keys: 'class', 'title', 'description') */ @@ -95,13 +108,14 @@ class TaskRunner extends Controller { $availableTasks[] = array( 'class' => $class, 'title' => singleton($class)->getTitle(), + 'segment' => str_replace('\\', '-', $class), 'description' => $desc, ); } return $availableTasks; } - + }