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.
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 <[email protected]> CC: Luis Felipe Strano Moraes <[email protected]> Signed-off-by: Jeroen van Rijn <[email protected]> --- 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 <[email protected]> + * Copyright 2012 Luis Felipe Strano Moraes <[email protected]> + * (code borrowed from toys/posix/who.c for user count) + * Copyright 2013 Jeroen van Rijn <[email protected]> + 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 _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
