summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.c10
-rw-r--r--src/storage.c15
-rw-r--r--src/storage.h6
3 files changed, 30 insertions, 1 deletions
diff --git a/main.c b/main.c
index 9fefc47..3dd62fc 100644
--- a/main.c
+++ b/main.c
@@ -20,6 +20,7 @@
#include "src/cpu.h"
#include "src/gpu.h"
#include "src/memory.h"
+#include "src/storage.h"
const char *sofname = "farfetch";
const char *version = "0.0.1";
@@ -239,13 +240,20 @@ int main(int argc, char *argv[]) {
printf("\n");
lc++;
+ const char *storage = display_storage();
+ if (storage) {
+ printf("%s ", LOGO[lc]);
+ printf("%sStorage%s: %s\n", color, reset, storage);
+ lc++;
+ free((void *)storage);
+ }
+
for (size_t i = lc; i < ls; i++) {
printf("%s\n", LOGO[i]);
}
// TODO:
// * 端末
- // * ストレージ
return 0;
}
diff --git a/src/storage.c b/src/storage.c
new file mode 100644
index 0000000..a6e21fa
--- /dev/null
+++ b/src/storage.c
@@ -0,0 +1,15 @@
+#include "storage.h"
+#include "common.h"
+
+#include <string.h>
+
+const char *display_storage() {
+ const char *iszfs = run_command_s("LC_ALL=C zpool list 2>&1");
+ if (strstr(iszfs, "command not found: zpool")) {
+ return run_command_s("zpool list | awk 'NR>1 {print $1 \": \" $3 \" / \" $2}' | "
+ "sed ':a;N;$!ba;s//, /g'");
+ }
+
+ return run_command_s("df -h | awk 'NR>1 {print $1 \": \" $3 \" / \" $2}' | "
+ "sed ':a;N;$!ba;s/\\n/, /g'");
+}
diff --git a/src/storage.h b/src/storage.h
new file mode 100644
index 0000000..9ec2217
--- /dev/null
+++ b/src/storage.h
@@ -0,0 +1,6 @@
+#ifndef STORAGE_H
+#define STORAGE_H
+
+const char *display_storage();
+
+#endif