11 use Symfony\Component\Console\Command\Command;
12 use Symfony\Component\Console\Input\InputInterface;
13 use Symfony\Component\Console\Output\OutputInterface;
15 use Symfony\Component\Console\Input\InputOption;
25 private $crontabManager;
30 private $tasksProvider;
40 $this->crontabManager = $crontabManager;
41 $this->tasksProvider = $tasksProvider;
43 parent::__construct();
51 $this->setName(
'cron:install')
52 ->setDescription(
'Generates and installs crontab for current user')
53 ->addOption(
'force',
'f', InputOption::VALUE_NONE,
'Force install tasks');
63 if ($this->crontabManager->getTasks() && !$input->getOption(
'force')) {
64 $output->writeln(
'<error>Crontab has already been generated and saved</error>');
69 $this->crontabManager->saveTasks($this->tasksProvider->getTasks());
71 $output->writeln(
'<error>' . $e->getMessage() .
'</error>');
75 $output->writeln(
'<info>Crontab has been generated and saved</info>');
__construct(CrontabManagerInterface $crontabManager, TasksProviderInterface $tasksProvider)
execute(InputInterface $input, OutputInterface $output)