X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/1d43e2f2b2a31caa48f16d0042d56e57545b2b48..c15e66ce7770b3ab79d61a84c785a5a48cfb8902:/slstatus.c diff --git a/slstatus.c b/slstatus.c index 9884aaa..fee56fc 100644 --- a/slstatus.c +++ b/slstatus.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -342,6 +343,22 @@ ip(const char *interface) return smprintf(unknowntext); } +/* load avg */ +char * +load_avg(const char *null) +{ + double avgs[3]; + + /* try to get load avg */ + if (getloadavg(avgs, 3) < 0) { + fprintf(stderr, "Error getting load avg.\n"); + return smprintf(unknowntext); + } + + /* return it */ + return smprintf("%.2f %.2f %.2f", avgs[0], avgs[1], avgs[2]); +} + /* ram free */ char * ram_free(const char *null) @@ -505,6 +522,23 @@ temp(const char *file) return smprintf("%d°C", temperature / 1000); } +/* uptime */ +char * +uptime(const char *null) +{ + struct sysinfo info; + int hours = 0; + int minutes = 0; + + /* get info */ + sysinfo(&info); + hours = info.uptime / 3600; + minutes = (info.uptime - hours * 3600 ) / 60; + + /* return it */ + return smprintf("%dh %dm", hours, minutes); +} + /* username */ char * username(const char *null)