Added shell command function

This commit is contained in:
Aaron Marcher 2016-08-15 12:23:35 +02:00 committed by Aaron Marcher (drkhsh)
parent 3c1a03919f
commit f6f0c895ce
3 changed files with 28 additions and 0 deletions

View File

@ -11,6 +11,7 @@ The following information is included:
- battery percentage - battery percentage
- cpu usage (in percent) - cpu usage (in percent)
- custom shell commands
- date and time - date and time
- disk numbers (free storage, percentage, total storage and used storage) - disk numbers (free storage, percentage, total storage and used storage)
- available entropy - available entropy

View File

@ -27,6 +27,7 @@ static unsigned int update_interval = 1;
- ram_perc (ram usage in percent) [argument: NULL] - ram_perc (ram usage in percent) [argument: NULL]
- ram_total (ram usage in percent) [argument: NULL] - ram_total (ram usage in percent) [argument: NULL]
- ram_used (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] - temp (temperature in degrees) [argument: temperature file]
- uid (uid of current user) [argument: NULL] - uid (uid of current user) [argument: NULL]
- username (username of current user) [argument: NULL] - username (username of current user) [argument: NULL]

View File

@ -444,6 +444,32 @@ ram_used(const char *null)
return smprintf("%f", (float)used / 1024 / 1024); 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 */ /* temperature */
char * char *
temp(const char *file) temp(const char *file)