diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/distro.c | 32 | ||||
-rw-r--r-- | src/host.c | 3 |
2 files changed, 22 insertions, 13 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("不明なディストリビューション。"); } @@ -32,7 +32,8 @@ void display_host_model() { #elif defined(__sun) run_command("prtconf -b | awk -F':' '/banner-name/ {printf $2}'"); #elif defined(__linux__) - const char *cmd1, *cmd2; + const char *cmd1 = NULL; + const char *cmd2 = NULL; if (access("/system/app/", F_OK) != -1) { cmd1 = "getprop ro.product.brand"; cmd2 = "getprop ro.product.model"; |