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 + +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