aboutsummaryrefslogtreecommitdiff
path: root/cli/user-info.php
diff options
context:
space:
mode:
authorGravatar Alexis Degrugillier <aledeg@users.noreply.github.com> 2019-03-23 23:17:22 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-03-23 23:17:22 +0100
commitf2925594c7caf2753e1ac44941e029a3c1496117 (patch)
tree5f0140997bf45aa7e6de2b73bf7a01e8383443da /cli/user-info.php
parent1804c0e0bc095487b9a1ad13cbc9f55f6cef2a2a (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-xcli/user-info.php77
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();