diff options
author | Robin Appelman <robin@icewind.nl> | 2025-05-07 18:48:38 +0200 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2025-05-13 09:46:19 +0200 |
commit | f97495bf5a3aa706fbe298535a5f84624a1f338c (patch) | |
tree | f4389106b52dbfcd5176e3858dc48ef8d29302bb /apps/files_external/lib/Command | |
parent | 2f1c74d43f1df892d3b44802944c8f38d719b2d5 (diff) | |
download | nextcloud-server-occ-external-dependencies.tar.gz nextcloud-server-occ-external-dependencies.zip |
feat: add command to check files_external dependenciesocc-external-dependencies
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps/files_external/lib/Command')
-rw-r--r-- | apps/files_external/lib/Command/Dependencies.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/apps/files_external/lib/Command/Dependencies.php b/apps/files_external/lib/Command/Dependencies.php new file mode 100644 index 00000000000..1bb57778129 --- /dev/null +++ b/apps/files_external/lib/Command/Dependencies.php @@ -0,0 +1,56 @@ +<?php +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\Files_External\Command; + +use OC\Core\Command\Base; +use OCA\Files_External\Service\BackendService; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class Dependencies extends Base { + public function __construct( + private readonly BackendService $backendService, + ) { + parent::__construct(); + } + + protected function configure(): void { + $this + ->setName('files_external:dependencies') + ->setDescription('Show information about the backend dependencies'); + parent::configure(); + } + + protected function execute(InputInterface $input, OutputInterface $output): int { + $storageBackends = $this->backendService->getBackends(); + + $anyMissing = false; + + foreach ($storageBackends as $backend) { + if ($backend->getDeprecateTo() !== null) { + continue; + } + $missingDependencies = $backend->checkDependencies(); + if ($missingDependencies) { + $anyMissing = true; + $output->writeln($backend->getText() . ':'); + foreach ($missingDependencies as $missingDependency) { + if ($missingDependency->getMessage()) { + $output->writeln(" - <comment>{$missingDependency->getDependency()}</comment>: {$missingDependency->getMessage()}"); + } else { + $output->writeln(" - <comment>{$missingDependency->getDependency()}</comment>"); + } + } + } + } + + if (!$anyMissing) { + $output->writeln('<info>All dependencies are met</info>'); + } + + return self::SUCCESS; + } +} |