protected function execute(InputInterface $input, OutputInterface $output)
{
$this->validateInput($input, !$input->getOption('all'));
$id = $input->getArgument('id');
if ($id) {
$activity = $this->getSelectedProject()->getActivity($id);
if (!$activity) {
$this->stdErr->writeln("Activity not found: <error>{$id}</error>");
return 1;
}
} else {
if ($this->hasSelectedEnvironment() && !$input->getOption('all')) {
$activities = $this->getSelectedEnvironment()->getActivities(1, $input->getOption('type'));
} else {
$activities = $this->getSelectedProject()->getActivities(1, $input->getOption('type'));
}
/** @var Activity $activity */
$activity = reset($activities);
if (!$activity) {
$this->stdErr->writeln('No activities found');
return 1;
}
}
$this->stdErr->writeln("Log for activity <info>" . $activity->id . "</info> (" . $activity->getDescription() . "):\n");
$refresh = $input->getOption('refresh');
if ($refresh > 0 && !$this->runningViaMulti && $this->isTerminal($output) && !$activity->isComplete()) {
$activity->wait(null, function ($log) use($output) {
$output->write($log);
}, $refresh);
} else {
$output->write($activity->log);
}
return 0;
}