protected function execute(InputInterface $input, OutputInterface $output)
{
$this->arguments = $input->getArguments();
$this->options = $input->getOptions();
$files = $this->collectFiles($this->arguments['source']);
if (!count($files)) {
$output->writeln('<comment>No task found! Please check your source path.</comment>');
exit;
}
// List of schedules
$schedules = [];
foreach ($files as $file) {
$schedule = (require $file->getRealPath());
if (!$schedule instanceof Schedule) {
continue;
}
// We keep the events which are due and dismiss the rest.
$schedule->events($schedule->dueEvents());
if (count($schedule->events())) {
$schedules[] = $schedule;
}
}
if (!count($schedules)) {
$output->writeln('<comment>No event is due!</comment>');
exit;
}
// Running the events
(new EventRunner())->handle($schedules);
}