setName('background-job:delete') ->setDescription('Remove a background job from database') ->addArgument( 'job-id', InputArgument::REQUIRED, 'The ID of the job in the database' ); } protected function execute(InputInterface $input, OutputInterface $output): int { $jobId = (int)$input->getArgument('job-id'); $job = $this->jobList->getById($jobId); if ($job === null) { $output->writeln('Job with ID ' . $jobId . ' could not be found in the database'); return 1; } $output->writeln('Job class: ' . get_class($job)); $output->writeln('Arguments: ' . json_encode($job->getArgument())); $output->writeln(''); $question = new ConfirmationQuestion( 'Do you really want to delete this background job ? It could create some misbehaviours in Nextcloud. (y/N) ', false, '/^(y|Y)/i' ); /** @var QuestionHelper $helper */ $helper = $this->getHelper('question'); if (!$helper->ask($input, $output, $question)) { $output->writeln('aborted.'); return 0; } $this->jobList->remove($job, $job->getArgument()); return 0; } }