aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib/Command/Export.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_external/lib/Command/Export.php')
-rw-r--r--apps/files_external/lib/Command/Export.php44
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;
+ }
+}