Xinqi Bao's Git

Split into multiple files
[slstatus.git] / run_command.c
diff --git a/run_command.c b/run_command.c
new file mode 100644 (file)
index 0000000..26f1f17
--- /dev/null
@@ -0,0 +1,26 @@
+#include <err.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "util.h"
+
+const char *
+run_command(const char *cmd)
+{
+       char *p;
+       FILE *fp;
+
+       fp = popen(cmd, "r");
+       if (fp == NULL) {
+               warn("Failed to get command output for %s", cmd);
+               return NULL;
+       }
+       p = fgets(buf, sizeof(buf) - 1, fp);
+       pclose(fp);
+       if (!p)
+               return NULL;
+       if ((p = strrchr(buf, '\n')) != NULL)
+               p[0] = '\0';
+
+       return buf[0] ? buf : NULL;
+}