summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/distro.c32
-rw-r--r--src/host.c3
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("不明なディストリビューション。");
}
diff --git a/src/host.c b/src/host.c
index 2cc02ff..f10cc52 100644
--- a/src/host.c
+++ b/src/host.c
@@ -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";