diff options
| author | 2019-03-23 23:17:22 +0100 | |
|---|---|---|
| committer | 2019-03-23 23:17:22 +0100 | |
| commit | f2925594c7caf2753e1ac44941e029a3c1496117 (patch) | |
| tree | 5f0140997bf45aa7e6de2b73bf7a01e8383443da /cli/user-info.php | |
| parent | 1804c0e0bc095487b9a1ad13cbc9f55f6cef2a2a (diff) | |
Add header to cli (#2296)
* Add header to cli
Now there is a switch to display the header on user info.
While doing that, I've changed how the command is working to display
all users by default and to accept more than one user at once.
I also changed the display to make it more pleasing.
As this command displays all users by default. I wonder if we still
need the list user command.
See #2294
* Minor format
Diffstat (limited to 'cli/user-info.php')
| -rwxr-xr-x | cli/user-info.php | 77 |
1 files changed, 48 insertions, 29 deletions
diff --git a/cli/user-info.php b/cli/user-info.php index 125408c10..aa4db7c2f 100755 --- a/cli/user-info.php +++ b/cli/user-info.php @@ -2,19 +2,46 @@ <?php require(__DIR__ . '/_cli.php'); -$options = getopt('h', array( - 'user:', - )); +const DATA_FORMAT = "%-7s | %-20s | %-25s | %-15s | %-10s | %-10s | %-10s | %-10s | %-10s | %-10s\n"; + +$params = array( + 'user:', + 'header', +); +$options = getopt('h', $params); + +if (!validateOptions($argv, $params)) { + fail('Usage: ' . basename(__FILE__) . ' (-h --header --user username --user username …)'); +} if (empty($options['user'])) { - fail('Usage: ' . basename(__FILE__) . " -h --user username"); + $users = listUsers(); +} elseif (is_array($options['user'])) { + $users = $options['user']; +} else { + $users = array($options['user']); } -$users = $options['user'] === '*' ? listUsers() : array($options['user']); +sort($users); + +if (array_key_exists('header', $options)) { + printf( + DATA_FORMAT, + 'default', + 'user', + 'last update', + 'space used', + 'categories', + 'feeds', + 'reads', + 'unreads', + 'favourites', + 'tags' + ); +} foreach ($users as $username) { $username = cliInitUser($username); - echo $username === FreshRSS_Context::$system_conf->default_user ? '*' : ' ', "\t"; $catDAO = FreshRSS_Factory::createCategoryDao(); $feedDAO = FreshRSS_Factory::createFeedDao($username); @@ -25,31 +52,23 @@ foreach ($users as $username) { $nbEntries = $entryDAO->countUnreadRead(); $nbFavorites = $entryDAO->countUnreadReadFavorites(); + $data = array( + 'default' => $username === FreshRSS_Context::$system_conf->default_user ? '*' : '', + 'user' => $username, + 'lastUpdate' => FreshRSS_UserDAO::mtime($username), + 'spaceUsed' => $databaseDAO->size(), + 'categories' => $catDAO->count(), + 'feeds' => count($feedDAO->listFeedsIds()), + 'reads' => $nbEntries['read'], + 'unreads' => $nbEntries['unread'], + 'favourites' => $nbFavorites['all'], + 'tags' => $tagDAO->count(), + ); if (isset($options['h'])) { //Human format - echo - $username, "\t", - date('c', FreshRSS_UserDAO::mtime($username)), "\t", - format_bytes($databaseDAO->size()), "\t", - $catDAO->count(), " categories\t", - count($feedDAO->listFeedsIds()), " feeds\t", - $nbEntries['read'], " reads\t", - $nbEntries['unread'], " unreads\t", - $nbFavorites['all'], " favourites\t", - $tagDAO->count(), " tags\t", - "\n"; - } else { - echo - $username, "\t", - FreshRSS_UserDAO::mtime($username), "\t", - $databaseDAO->size(), "\t", - $catDAO->count(), "\t", - count($feedDAO->listFeedsIds()), "\t", - $nbEntries['read'], "\t", - $nbEntries['unread'], "\t", - $nbFavorites['all'], "\t", - $tagDAO->count(), "\t", - "\n"; + $data['lastUpdate'] = date('c', $data['lastUpdate']); + $data['spaceUsed'] = format_bytes($data['spaceUsed']); } + vprintf(DATA_FORMAT, $data); } done(); |
