diff options
Diffstat (limited to 'core/Command/Base.php')
-rw-r--r-- | core/Command/Base.php | 25 |
1 files changed, 23 insertions, 2 deletions
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 */ |