diff options
author | 諏訪子 <suwako@076.moe> | 2024-06-17 22:54:24 +0900 |
---|---|---|
committer | 諏訪子 <suwako@076.moe> | 2024-06-17 22:54:24 +0900 |
commit | 3d418e666955695052d25e32c6b2f296b7af6859 (patch) | |
tree | 929c517ab3ad1452c90ecedeee4f6575aa5fe893 /src/distro.c | |
parent | cf13f2d8c1622a46f6499dcb762ea2b9370d99fc (diff) |
Linuxでの修正
Diffstat (limited to 'src/distro.c')
-rw-r--r-- | src/distro.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/distro.c b/src/distro.c index e94922b..8830e7c 100644 --- a/src/distro.c +++ b/src/distro.c @@ -3,31 +3,39 @@ #include <stdio.h> #include <string.h> - #include <unistd.h> void display_distro() { - char buf[64]; - const char *cmd; + char buf[1288]; + const char *cmd = NULL; if (access("/bedrock/etc/bedrock-release", F_OK) != -1) { - cmd = "cat /bedrock/etc/bedrock-release"; + cmd = "cat /bedrock/etc/bedrock-release | grep '^PRETTY_NAME' | " + "cut -d '=' -f2 | tr -d '\"'"; } else if (access("/etc/redstar-release", F_OK) != -1) { - cmd = "echo \"Red Star OS\" && cat /etc/redstar-release | awk -F'[^0-9]' '$0=$2'"; + cmd = "echo \"Red Star OS\" && cat /etc/redstar-release | " + "awk -F'[^0-9]' '$0=$2'"; } else if (access("/etc/siduction-version", F_OK) != -1) { - cmd = "echo \"Siduction\" && lsb_release -sic"; + cmd = "echo \"Siduction\" && lsb_release -sic | " + "grep '^PRETTY_NAME' | cut -d '=' -f2 | tr -d '\"'"; } else if (access("/etc/mcst_version", F_OK) != -1) { - cmd = "echo \"OS Elbrus\" && cat /etc/mcst_version"; + cmd = "echo \"OS Elbrus\" && cat /etc/mcst_version | " + "grep '^PRETTY_NAME' | cut -d '=' -f2 | tr -d '\"'"; } else if (access("/etc/GoboLinuxVersion", F_OK) != -1) { - cmd = "echo \"GoboLinux\" && cat /etc/GoboLinuxVersion"; + cmd = "echo \"GoboLinux\" && cat /etc/GoboLinuxVersion | " + "grep '^PRETTY_NAME' | cut -d '=' -f2 | tr -d '\"'"; } else if (access("/etc/os-release", F_OK) != -1) { - cmd = "cat /etc/os-release"; + cmd = "cat /etc/os-release | " + "grep '^PRETTY_NAME' | cut -d '=' -f2 | tr -d '\"'"; } else if (access("/usr/lib/os-release", F_OK) != -1) { - cmd = "cat /usr/lib/os-release"; + cmd = "cat /usr/lib/os-release | " + "grep '^PRETTY_NAME' | cut -d '=' -f2 | tr -d '\"'"; } else if (access("/etc/openwrt_release", F_OK) != -1) { - cmd = "cat /etc/openwrt_release"; + cmd = "cat /etc/openwrt_release | " + "grep '^PRETTY_NAME' | cut -d '=' -f2 | tr -d '\"'"; } else if (access("/etc/lsb-release", F_OK) != -1) { - cmd = "cat /etc/lsb-release"; + cmd = "cat /etc/lsb-release | " + "grep '^DISTRIB_DESCRIPTION' | cut -d '=' -f2 | tr -d '\"'"; } else { perror("不明なディストリビューション。"); } |