From b5b547abb601cc4da5951eec48988d77451afdf2 Mon Sep 17 00:00:00 2001 From: hasufell Date: Mon, 26 Aug 2013 03:58:36 -0400 Subject: Sysinfo: Fix gentoo detection --- plugins/sysinfo/parse.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'plugins') diff --git a/plugins/sysinfo/parse.c b/plugins/sysinfo/parse.c index ed6ba146..44ad4f86 100644 --- a/plugins/sysinfo/parse.c +++ b/plugins/sysinfo/parse.c @@ -378,22 +378,9 @@ int xs_parse_distro(char *name) { FILE *fp = NULL; char buffer[bsize], *pos = NULL; - - if((fp = fopen("/etc/lsb-release", "r")) != NULL) - { - char id[bsize], codename[bsize], release[bsize]; - strcpy(id, "?"); - strcpy(codename, "?"); - strcpy(release, "?"); - while(fgets(buffer, bsize, fp) != NULL) - { - find_match_char(buffer, "DISTRIB_ID", id); - find_match_char(buffer, "DISTRIB_CODENAME", codename); - find_match_char(buffer, "DISTRIB_RELEASE", release); - } - snprintf(buffer, bsize, "%s \"%s\" %s", id, codename, release); - } - else if((fp = fopen("/etc/make.conf", "r")) != NULL) + + if((fp = fopen("/etc/portage/make.conf", "r")) != NULL || + (fp = fopen("/etc/make.conf", "r")) != NULL) { char keywords[bsize]; while(fgets(buffer, bsize, fp) != NULL) @@ -403,7 +390,7 @@ int xs_parse_distro(char *name) snprintf(buffer, bsize, "Gentoo Linux (stable)"); else snprintf(buffer, bsize, "Gentoo Linux %s", keywords); - } + } else if((fp = fopen("/etc/redhat-release", "r")) != NULL) fgets(buffer, bsize, fp); else if((fp = fopen("/etc/mageia-release", "r")) != NULL) @@ -424,6 +411,20 @@ int xs_parse_distro(char *name) fgets(buffer, bsize, fp); else if((fp = fopen("/etc/arch-release", "r")) != NULL) snprintf(buffer, bsize, "ArchLinux"); + else if((fp = fopen("/etc/lsb-release", "r")) != NULL) + { + char id[bsize], codename[bsize], release[bsize]; + strcpy(id, "?"); + strcpy(codename, "?"); + strcpy(release, "?"); + while(fgets(buffer, bsize, fp) != NULL) + { + find_match_char(buffer, "DISTRIB_ID", id); + find_match_char(buffer, "DISTRIB_CODENAME", codename); + find_match_char(buffer, "DISTRIB_RELEASE", release); + } + snprintf(buffer, bsize, "%s \"%s\" %s", id, codename, release); + } else snprintf(buffer, bsize, "Unknown Distro"); if(fp != NULL) fclose(fp); -- cgit 1.4.1