diff options
Diffstat (limited to 'cli/user-info.php')
| -rwxr-xr-x | cli/user-info.php | 79 |
1 files changed, 50 insertions, 29 deletions
diff --git a/cli/user-info.php b/cli/user-info.php index 043bebf7c..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,29 +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(); |
