[Toybox] [PATCH] uptime.c: Add user count and format according to upstream
Elie De Brauwer
eliedebrauwer at gmail.com
Sun Oct 13 06:47:55 PDT 2013
On Sun, Oct 13, 2013 at 1:14 AM, Jeroen van Rijn <jvrnix at gmail.com> wrote:
> I noticed the user count was missing and added this, borrowing a bit
> of code from toys/posix/who.c. The original toy also omitted commas
> between the load values, as compared to upstream.
Jeroen,
Patch look fine to me, except the excessive header spam perhaps ;).
gr
E.
> Output now includes user count and follows the same format:
> $ ./toybox uptime
> 00:49:04 up 3 days, 8:00, 2 users, load average: 0,07, 0,15, 0,34
> $ uptime
> 00:49:07 up 3 days, 8:00, 2 users, load average: 0,06, 0,15, 0,34
>
> CC: Elie De Brauwer <eliedebrauwer at gmail.com>
> CC: Luis Felipe Strano Moraes <lfelipe at profusion.mobi>
> Signed-off-by: Jeroen van Rijn <jvrnix at gmail.com>
> ---
> toys/other/uptime.c | 17 +++++++++++++++--
> 1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/toys/other/uptime.c b/toys/other/uptime.c
> index f4ce5e4..d20af53 100644
> --- a/toys/other/uptime.c
> +++ b/toys/other/uptime.c
> @@ -1,6 +1,10 @@
> /* uptime.c - Tell how long the system has been running.
> *
> * Copyright 2012 Elie De Brauwer <eliedebrauwer at gmail.com>
> + * Copyright 2012 Luis Felipe Strano Moraes <lfelipe at profusion.mobi>
> + * (code borrowed from toys/posix/who.c for user count)
> + * Copyright 2013 Jeroen van Rijn <jvrnix at gmail.com>
> +
>
> USE_UPTIME(NEWTOY(uptime, NULL, TOYFLAG_USR|TOYFLAG_BIN))
>
> @@ -22,11 +26,20 @@ void uptime_main(void)
> time_t tmptime;
> struct tm * now;
> unsigned int days, hours, minutes;
> + struct utmpx *entry;
> + int users = 0;
>
> // Obtain the data we need.
> sysinfo(&info);
> time(&tmptime);
> now = localtime(&tmptime);
> + // Obtain info about logged on users
> + setutxent();
> + while ((entry = getutxent()))
> + {
> + if (entry->ut_type == USER_PROCESS) users++;
> + }
> + endutxent();
>
> // Time
> xprintf(" %02d:%02d:%02d up ", now->tm_hour, now->tm_min, now->tm_sec);
> @@ -39,7 +52,7 @@ void uptime_main(void)
> if (days) xprintf("%d day%s, ", days, (days!=1)?"s":"");
> if (hours) xprintf("%2d:%02d, ", hours, minutes);
> else printf("%d min, ", minutes);
> -
> - printf(" load average: %.02f %.02f %.02f\n", info.loads[0]/65536.0,
> + printf(" %d user%s, ", users, (users!=1)?"s":"");
> + printf(" load average: %.02f, %.02f, %.02f\n", info.loads[0]/65536.0,
> info.loads[1]/65536.0, info.loads[2]/65536.0);
> }
> --
> 1.8.1.2
>
--
Elie De Brauwer
More information about the Toybox
mailing list