Xinqi Bao's Git

Added shell command function
[slstatus.git] / slstatus.c
index 6d56000..a5807dd 100644 (file)
@@ -444,6 +444,32 @@ ram_used(const char *null)
     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)