aboutsummaryrefslogtreecommitdiffstats
path: root/core/Command/SetupChecks.php
diff options
context:
space:
mode:
Diffstat (limited to 'core/Command/SetupChecks.php')
-rw-r--r--core/Command/SetupChecks.php59
1 files changed, 11 insertions, 48 deletions
diff --git a/core/Command/SetupChecks.php b/core/Command/SetupChecks.php
index e6e54fbcf22..6ef67726839 100644
--- a/core/Command/SetupChecks.php
+++ b/core/Command/SetupChecks.php
@@ -3,28 +3,13 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2023 Côme Chilliet <come.chilliet@nextcloud.com>
- *
- * @author Côme Chilliet <come.chilliet@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OC\Core\Command;
+use OCP\RichObjectStrings\IRichTextFormatter;
use OCP\SetupCheck\ISetupCheckManager;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@@ -32,6 +17,7 @@ use Symfony\Component\Console\Output\OutputInterface;
class SetupChecks extends Base {
public function __construct(
private ISetupCheckManager $setupCheckManager,
+ private IRichTextFormatter $richTextFormatter,
) {
parent::__construct();
}
@@ -45,29 +31,6 @@ class SetupChecks extends Base {
;
}
- /**
- * @TODO move this method to a common service used by notifications, activity and this command
- * @throws \InvalidArgumentException if a parameter has no name or no type
- */
- private function richToParsed(string $message, array $parameters): string {
- $placeholders = [];
- $replacements = [];
- foreach ($parameters as $placeholder => $parameter) {
- $placeholders[] = '{' . $placeholder . '}';
- foreach (['name','type'] as $requiredField) {
- if (!isset($parameter[$requiredField]) || !is_string($parameter[$requiredField])) {
- throw new \InvalidArgumentException("Invalid rich object, {$requiredField} field is missing");
- }
- }
- $replacements[] = match($parameter['type']) {
- 'user' => '@' . $parameter['name'],
- 'file' => $parameter['path'] ?? $parameter['name'],
- default => $parameter['name'],
- };
- }
- return str_replace($placeholders, $replacements, $message);
- }
-
protected function execute(InputInterface $input, OutputInterface $output): int {
$results = $this->setupCheckManager->runAll();
switch ($input->getOption('output')) {
@@ -95,15 +58,15 @@ class SetupChecks extends Base {
$description = $check->getDescription();
$descriptionParameters = $check->getDescriptionParameters();
if ($description !== null && $descriptionParameters !== null) {
- $description = $this->richToParsed($description, $descriptionParameters);
+ $description = $this->richTextFormatter->richToParsed($description, $descriptionParameters);
}
$output->writeln(
- "\t\t".
- ($styleTag !== null ? "<{$styleTag}>" : '').
- "{$emoji} ".
- ($check->getName() ?? $check::class).
- ($description !== null ? ': '.$description : '').
- ($styleTag !== null ? "</{$styleTag}>" : ''),
+ "\t\t"
+ . ($styleTag !== null ? "<{$styleTag}>" : '')
+ . "{$emoji} "
+ . ($check->getName() ?? $check::class)
+ . ($description !== null ? ': ' . $description : '')
+ . ($styleTag !== null ? "</{$styleTag}>" : ''),
$verbosity
);
}