diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2022-06-27 15:20:16 +0200 |
---|---|---|
committer | Côme Chilliet (Rebase PR Action) <come-nc@users.noreply.github.com> | 2022-07-11 09:46:23 +0000 |
commit | 0cc39d185c27505bd6c1f8809bbbea3f3f6b19a2 (patch) | |
tree | 6c363766479787b6b737aa3be7e9cf00d7a5c1bd /core/Command | |
parent | 3cf8c63409a19741200bcab781a9921963fd5e07 (diff) | |
download | nextcloud-server-0cc39d185c27505bd6c1f8809bbbea3f3f6b19a2.tar.gz nextcloud-server-0cc39d185c27505bd6c1f8809bbbea3f3f6b19a2.zip |
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.php | 2 | ||||
-rw-r--r-- | core/Command/Base.php | 25 |
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 */ |