public function getTask($task, array $macroOptions = [])
{
$script = array_get($this->tasks, $task, '');
if ($script == '') {
throw new \Exception(sprintf('Task "%s" is not defined.', $task));
}
$options = array_merge($this->getTaskOptions($task), $macroOptions);
$parallel = array_get($options, 'parallel', false);
$confirm = array_get($options, 'confirm', null);
return new Task($this->getServers($options), $options['as'], $script, $parallel, $confirm);
}