all repos — slstatus @ f6f0c895ce95065f581f6f6d473afe9745a6f812

my build of slstatus (tools.suckless.org/slstatus/)

Added shell command function
Aaron Marcher info@nulltime.net
Mon, 15 Aug 2016 12:23:35 +0200
commit

f6f0c895ce95065f581f6f6d473afe9745a6f812

parent

3c1a03919f147069fac3444f5c8a2adaf8a65478

3 files changed, 28 insertions(+), 0 deletions(-)

jump to
M README.mdREADME.md

@@ -11,6 +11,7 @@ The following information is included:

- battery percentage - cpu usage (in percent) +- custom shell commands - date and time - disk numbers (free storage, percentage, total storage and used storage) - available entropy
M config.def.hconfig.def.h

@@ -27,6 +27,7 @@ - ram_free (ram usage in percent) [argument: NULL]

- ram_perc (ram usage in percent) [argument: NULL] - ram_total (ram usage in percent) [argument: NULL] - ram_used (ram usage in percent) [argument: NULL] +- run_command (run custom shell command) [argument: command] - temp (temperature in degrees) [argument: temperature file] - uid (uid of current user) [argument: NULL] - username (username of current user) [argument: NULL]
M slstatus.cslstatus.c

@@ -444,6 +444,32 @@ /* return used ram as string */

return smprintf("%f", (float)used / 1024 / 1024); } +/* custom shell command */ +char * +run_command(const char* command) +{ + FILE *fp; + char buffer[64]; + + /* try to open the command output */ + if (!(fp = popen(command, "r"))) { + fprintf(stderr, "Could not get command output for: %s.\n", command); + return smprintf("n/a"); + } + + /* get command output text, save it to buffer */ + fgets(buffer, sizeof(buffer)-1, fp); + + /* close it again */ + pclose(fp); + + /* add nullchar at the end */ + buffer[strlen(buffer) - 1] = '\0'; + + /* return the output */ + return smprintf("%s", buffer); +} + /* temperature */ char * temp(const char *file)