From 68bb60e52f92e5186ab9c0e39284c0843cf74eb4 Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Fri, 19 Jun 2015 13:09:21 +1000 Subject: [PATCH] Use PhutilConsoleTable in `./bin/storage probe` Summary: Fixes T8477. Use `PhutilConsoleTable` to render the output from `./bin/storage probe`. Test Plan: Ran `./bin/storage probe` and saw tabulated output. Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: epriestley, Korvin Maniphest Tasks: T8477 Differential Revision: https://secure.phabricator.com/D13339 --- ...bricatorStorageManagementProbeWorkflow.php | 59 +++++++++++++------ 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementProbeWorkflow.php b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementProbeWorkflow.php index a4ef562c37..d2fbc95326 100644 --- a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementProbeWorkflow.php +++ b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementProbeWorkflow.php @@ -45,34 +45,57 @@ final class PhabricatorStorageManagementProbeWorkflow } } - $console->writeOut("%s\n", pht('APPROXIMATE TABLE SIZES')); asort($totals); + + $table = id(new PhutilConsoleTable()) + ->setShowHeader(false) + ->setPadding(2) + ->addColumn('name', array('title' => pht('Database / Table'))) + ->addColumn('size', array('title' => pht('Size'))) + ->addColumn('percentage', array('title' => pht('Percentage'))); + foreach ($totals as $db => $size) { - $database_size = $this->formatSize($totals[$db], $overall); - $console->writeOut( - "**%s**\n", - sprintf('%-32.32s %18s', $db, $database_size)); + list($database_size, $database_percentage) = $this->formatSize( + $totals[$db], + $overall); + + $table->addRow(array( + 'name' => phutil_console_format('**%s**', $db), + 'size' => phutil_console_format('**%s**', $database_size), + 'percentage' => phutil_console_format('**%s**', $database_percentage), + )); $data[$db] = isort($data[$db], '_totalSize'); - foreach ($data[$db] as $table => $info) { - $table_size = $this->formatSize($info['_totalSize'], $overall); - $console->writeOut( - "%s\n", - sprintf(' %-28.28s %18s', $table, $table_size)); + foreach ($data[$db] as $table_name => $info) { + list($table_size, $table_percentage) = $this->formatSize( + $info['_totalSize'], + $overall); + + $table->addRow(array( + 'name' => ' '.$table_name, + 'size' => $table_size, + 'percentage' => $table_percentage, + )); } } - $overall_size = $this->formatSize($overall, $overall); - $console->writeOut( - "**%s**\n", - sprintf('%-32.32s %18s', pht('TOTAL'), $overall_size)); + list($overall_size, $overall_percentage) = $this->formatSize( + $overall, + $overall); + $table->addRow(array( + 'name' => phutil_console_format('**%s**', pht('TOTAL')), + 'size' => phutil_console_format('**%s**', $overall_size), + 'percentage' => phutil_console_format('**%s**', $overall_percentage), + )); + + $table->draw(); return 0; } private function formatSize($n, $o) { - return sprintf( - '%8.8s MB %5.5s%%', - number_format($n / (1024 * 1024), 1), - sprintf('%3.1f', 100 * ($n / $o))); + return array( + sprintf('%8.8s MB', number_format($n / (1024 * 1024), 1)), + sprintf('%3.1f%%', 100 * ($n / $o)), + ); } }