addArgument('task_id', InputArgument::REQUIRED, 'The task_id to run'); $this->addOption( 'runner' , 'r' , InputOption::VALUE_REQUIRED , 'The name of the runner (manual, scheduler...)' , task_abstract::RUNNER_MANUAL ); $this->setDescription('Run task'); return $this; } public function execute(InputInterface $input, OutputInterface $output) { if (!setup::is_installed()) { $output->writeln('Phraseanet is not set up'); return 1; } require_once __DIR__ . '/../../../../lib/bootstrap.php'; $task_id = (int) $input->getArgument('task_id'); if ($task_id <= 0 || strlen($task_id) !== strlen($input->getArgument('task_id'))) { $output->writeln('Argument must be an Id.'); return 1; } try { $appbox = appbox::get_instance(); $task_manager = new task_manager($appbox); $task = $task_manager->get_task($task_id); $runner = task_abstract::RUNNER_SCHEDULER; if ($input->getOption('runner') === task_abstract::RUNNER_MANUAL) { $runner = task_abstract::RUNNER_MANUAL; } $task->run($runner); return 0; } catch (\exception $e) { return 1; } } }