diff options
author | MichaIng <micha@dietpi.com> | 2021-06-20 13:20:10 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-20 13:20:10 +0300 |
commit | 4f47bec782c90d89a501e7ed5ed43c2816a8ce81 (patch) | |
tree | ad5bac61b7a005a92f234a44531354ff6ab24032 /core/Command/SystemTag/Delete.php | |
parent | 4d51ed3918032c44df612fad6b2c12b0e9eff693 (diff) | |
parent | 61a31dcdd73aae9a728551421116c5947e5b3089 (diff) |
Merge branch 'master' into improve-contributing-docsimprove-contributing-docs
Diffstat (limited to 'core/Command/SystemTag/Delete.php')
-rw-r--r-- | core/Command/SystemTag/Delete.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/core/Command/SystemTag/Delete.php b/core/Command/SystemTag/Delete.php new file mode 100644 index 00000000000..74cc895c251 --- /dev/null +++ b/core/Command/SystemTag/Delete.php @@ -0,0 +1,63 @@ +<?php +/** + * @copyright Copyright (c) 2021, hosting.de, Johannes Leuker <developers@hosting.de> + * + * @author Johannes Leuker <j.leuker@hosting.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +namespace OC\Core\Command\SystemTag; + +use OC\Core\Command\Base; +use OCP\SystemTag\ISystemTagManager; +use OCP\SystemTag\TagNotFoundException; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class Delete extends Base { + + /** @var ISystemTagManager */ + protected $systemTagManager; + + public function __construct(ISystemTagManager $systemTagManager) { + $this->systemTagManager = $systemTagManager; + parent::__construct(); + } + + protected function configure() { + $this + ->setName('tag:delete') + ->setDescription('delete a tag') + ->addArgument( + 'id', + InputOption::VALUE_REQUIRED, + 'The ID of the tag that should be deleted', + ); + } + + protected function execute(InputInterface $input, OutputInterface $output): int { + try { + $this->systemTagManager->deleteTags($input->getArgument('id')); + $output->writeln('<info>The specified tag was deleted</info>'); + return 0; + } catch (TagNotFoundException $e) { + $output->writeln('<error>Tag not found</error>'); + return 1; + } + } +} |