diff options
Diffstat (limited to 'apps/files_external/lib/Command/Export.php')
-rw-r--r-- | apps/files_external/lib/Command/Export.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/apps/files_external/lib/Command/Export.php b/apps/files_external/lib/Command/Export.php new file mode 100644 index 00000000000..59484d0e788 --- /dev/null +++ b/apps/files_external/lib/Command/Export.php @@ -0,0 +1,44 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\Files_External\Command; + +use Symfony\Component\Console\Input\ArrayInput; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class Export extends ListCommand { + protected function configure(): void { + $this + ->setName('files_external:export') + ->setDescription('Export mount configurations') + ->addArgument( + 'user_id', + InputArgument::OPTIONAL, + 'user id to export the personal mounts for, if no user is provided admin mounts will be exported' + )->addOption( + 'all', + 'a', + InputOption::VALUE_NONE, + 'show both system wide mounts and all personal mounts' + ); + } + + protected function execute(InputInterface $input, OutputInterface $output): int { + $listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager); + $listInput = new ArrayInput([], $listCommand->getDefinition()); + $listInput->setArgument('user_id', $input->getArgument('user_id')); + $listInput->setOption('all', $input->getOption('all')); + $listInput->setOption('output', 'json_pretty'); + $listInput->setOption('show-password', true); + $listInput->setOption('full', true); + $listCommand->execute($listInput, $output); + return self::SUCCESS; + } +} |