Skip to content

Commit efb14f3

Browse files
committed
feat: show log messages in files_external:verify in verbose mode
Signed-off-by: Robin Appelman <robin@icewind.nl>
1 parent 0a24ae5 commit efb14f3

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

apps/files_external/lib/Command/Verify.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,21 @@
1414
use OCA\Files_External\NotFoundException;
1515
use OCA\Files_External\Service\GlobalStoragesService;
1616
use OCP\AppFramework\Http;
17+
use OCP\EventDispatcher\IEventDispatcher;
1718
use OCP\Files\StorageNotAvailableException;
19+
use OCP\Log\BeforeMessageLoggedEvent;
1820
use Symfony\Component\Console\Input\InputArgument;
1921
use Symfony\Component\Console\Input\InputInterface;
2022
use Symfony\Component\Console\Input\InputOption;
2123
use Symfony\Component\Console\Output\OutputInterface;
2224

2325
class Verify extends Base {
26+
/// formatting tags for the various log levels
27+
public const FORMATTING = ['comment', 'comment', 'comment', 'error', 'error'];
28+
2429
public function __construct(
2530
protected GlobalStoragesService $globalService,
31+
protected IEventDispatcher $eventDispatcher,
2632
) {
2733
parent::__construct();
2834
}
@@ -57,13 +63,36 @@ protected function execute(InputInterface $input, OutputInterface $output): int
5763
return Http::STATUS_NOT_FOUND;
5864
}
5965

66+
$logMessages = [];
67+
$logListener = null;
68+
if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
69+
$logListener = function (BeforeMessageLoggedEvent $event) use (&$logMessages) {
70+
$format = self::FORMATTING[$event->getLevel()];
71+
$logMessages[] = " - <$format>" . $event->getMessage()['message'] . "</$format>";
72+
};
73+
$this->eventDispatcher->addListener(BeforeMessageLoggedEvent::class, $logListener);
74+
}
75+
6076
$this->updateStorageStatus($mount, $configInput, $output);
6177

78+
if ($logListener) {
79+
$this->eventDispatcher->removeListener(BeforeMessageLoggedEvent::class, $logListener);
80+
}
81+
6282
$this->writeArrayInOutputFormat($input, $output, [
6383
'status' => StorageNotAvailableException::getStateCodeName($mount->getStatus()),
6484
'code' => $mount->getStatus(),
6585
'message' => $mount->getStatusMessage()
6686
]);
87+
88+
if (count($logMessages)) {
89+
$output->writeln('');
90+
$output->writeln('Messages logged during validation:');
91+
foreach ($logMessages as $logMessage) {
92+
$output->writeln($logMessage);
93+
}
94+
}
95+
6796
return self::SUCCESS;
6897
}
6998

0 commit comments

Comments
 (0)