public function run($pakefile = null, $options = null, $load_pakefile = true)
{
if ($pakefile) {
$this->PAKEFILES = array($pakefile);
}
$this->handle_options($options);
// register help task
pake_task('pakeApp::help');
if ($load_pakefile) {
$this->load_pakefile();
}
if ($this->show_tasks) {
$this->display_tasks_and_comments();
return;
}
if ($this->show_prereqs) {
$this->display_prerequisites();
return;
}
if ($this->interactive) {
$this->runInteractiveSession();
return;
}
// parsing out options and arguments
$argv = $this->opt->get_arguments();
list($task_name, $args, $options) = self::parseTaskAndParameters($argv);
if (!$task_name) {
return $this->runDefaultTask();
} else {
$task_name = pakeTask::get_full_task_name($task_name);
return $this->initAndRunTask($task_name, $args, $options);
}
}