setName('backup:note') ->setDescription('Set or remove the note on a snapshot') ->addArgument('target', InputArgument::REQUIRED, 'Location name or id') ->addArgument('snapshot', InputArgument::REQUIRED, 'Snapshot id (see backup:list)') ->addArgument('note', InputArgument::OPTIONAL, 'The note, at most ' . PruneService::NOTE_MAX . ' characters; without it the note is removed', ''); } protected function execute(InputInterface $input, OutputInterface $output): int { $note = (string)$input->getArgument('note'); try { $this->prune->setNote($this->targets->get($input->getArgument('target')), $input->getArgument('snapshot'), $note); } catch (\Throwable $e) { $output->writeln('' . $e->getMessage() . ''); return 1; } $output->writeln(trim($note) === '' ? 'Note removed.' : 'Note saved.'); return 0; } }