Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2022-06-27 16:20:16 +0300
committerCôme Chilliet (Rebase PR Action) <come-nc@users.noreply.github.com>2022-07-11 12:46:23 +0300
commit0cc39d185c27505bd6c1f8809bbbea3f3f6b19a2 (patch)
tree6c363766479787b6b737aa3be7e9cf00d7a5c1bd /core/Command
parent3cf8c63409a19741200bcab781a9921963fd5e07 (diff)
Use symfony console table to render the job list properly
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'core/Command')
-rw-r--r--core/Command/Background/ListCommand.php2
-rw-r--r--core/Command/Base.php25
2 files changed, 24 insertions, 3 deletions
diff --git a/core/Command/Background/ListCommand.php b/core/Command/Background/ListCommand.php
index 0bbf01d76db..d29ac38a7bf 100644
--- a/core/Command/Background/ListCommand.php
+++ b/core/Command/Background/ListCommand.php
@@ -68,7 +68,7 @@ class ListCommand extends Base {
protected function execute(InputInterface $input, OutputInterface $output): int {
$jobs = $this->jobList->getJobs($input->getOption('class'), (int)$input->getOption('limit'), (int)$input->getOption('offset'));
- $this->writeArrayInOutputFormat($input, $output, $this->formatJobs($jobs));
+ $this->writeTableInOutputFormat($input, $output, $this->formatJobs($jobs));
return 0;
}
diff --git a/core/Command/Base.php b/core/Command/Base.php
index d228e362447..abf9f95773a 100644
--- a/core/Command/Base.php
+++ b/core/Command/Base.php
@@ -26,9 +26,10 @@
namespace OC\Core\Command;
use OC\Core\Command\User\ListCommand;
-use Stecman\Component\Symfony\Console\BashCompletion\Completion\CompletionAwareInterface;
use Stecman\Component\Symfony\Console\BashCompletion\CompletionContext;
+use Stecman\Component\Symfony\Console\BashCompletion\Completion\CompletionAwareInterface;
use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\Table;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
@@ -54,7 +55,7 @@ class Base extends Command implements CompletionAwareInterface {
;
}
- protected function writeArrayInOutputFormat(InputInterface $input, OutputInterface $output, array $items, string $prefix = ' - ') {
+ protected function writeArrayInOutputFormat(InputInterface $input, OutputInterface $output, array $items, string $prefix = ' - '): void {
switch ($input->getOption('output')) {
case self::OUTPUT_FORMAT_JSON:
$output->writeln(json_encode($items));
@@ -84,6 +85,26 @@ class Base extends Command implements CompletionAwareInterface {
}
}
+ protected function writeTableInOutputFormat(InputInterface $input, OutputInterface $output, array $items): void {
+ switch ($input->getOption('output')) {
+ case self::OUTPUT_FORMAT_JSON:
+ $output->writeln(json_encode($items));
+ break;
+ case self::OUTPUT_FORMAT_JSON_PRETTY:
+ $output->writeln(json_encode($items, JSON_PRETTY_PRINT));
+ break;
+ default:
+ $table = new Table($output);
+ $table->setRows($items);
+ if (!empty($items) && is_string(array_key_first(reset($items)))) {
+ $table->setHeaders(array_keys(reset($items)));
+ }
+ $table->render();
+ break;
+ }
+ }
+
+
/**
* @param mixed $item
*/