diff options
-rw-r--r-- | main.c | 9 | ||||
-rw-r--r-- | src/libc.c | 24 | ||||
-rw-r--r-- | src/libc.h | 6 |
3 files changed, 38 insertions, 1 deletions
@@ -16,6 +16,7 @@ #include "src/resolution.h" #include "src/wm.h" #include "src/shell.h" +#include "src/libc.h" #include "src/cpu.h" #include "src/gpu.h" #include "src/memory.h" @@ -209,6 +210,13 @@ int main(int argc, char *argv[]) { lc++; } + const char *libc = display_libc(); + if (libc) { + printf("%s ", LOGO[lc]); + printf("%slibc%s: %s\n", color, reset, libc); + lc++; + } + const char *cpu = display_cpu(); if (cpu) { printf("%s ", LOGO[lc]); @@ -236,7 +244,6 @@ int main(int argc, char *argv[]) { } // TODO: - // * libc // * 端末 // * ストレージ diff --git a/src/libc.c b/src/libc.c new file mode 100644 index 0000000..9b3a129 --- /dev/null +++ b/src/libc.c @@ -0,0 +1,24 @@ +#include "libc.h" +#include "common.h" + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +const char *display_libc() { +#if defined(__linux__) + const char *musl = run_command_s("ldd $(which ls) | grep libc | grep musl)"; + if (musl != NULL && strlen(musl) != 0) { + free((void *)musl); + return "musl"; + } + + const char *glibc = run_command_s("ldd $(which ls) | grep libc | grep gnu"); + if (glibc != NULL && strlen(glibc) != 0) { + free((void *)glibc); + return "glibc"; + } +#endif + + return NULL; +} diff --git a/src/libc.h b/src/libc.h new file mode 100644 index 0000000..0558a77 --- /dev/null +++ b/src/libc.h @@ -0,0 +1,6 @@ +#ifndef LIBC_H +#define LIBC_H + +const char *display_libc(); + +#endif |