Skip to content
Snippets Groups Projects
Commit e801eb80 authored by ms217's avatar ms217
Browse files

overhauled RHEL/Fedora detection

parent 8add9a86
No related branches found
No related tags found
No related merge requests found
...@@ -261,8 +261,8 @@ class monitor_tools { ...@@ -261,8 +261,8 @@ class monitor_tools {
$distbaseid = 'opensuse'; $distbaseid = 'opensuse';
} elseif(stristr(file_get_contents('/etc/os-release'), 'opensuse')) { } elseif(stristr(file_get_contents('/etc/os-release'), 'opensuse')) {
$content = file_get_contents('/etc/os-release'); $content = file_get_contents('/etc/os-release');
preg_match_all('/NAME=\"([\w ]+)\"/m', $content, $name); preg_match_all('/NAME=\"([\w ]+)\"/m', $content, $name);
preg_match_all('/VERSION_ID=\"([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*).$/m', $content, $version); preg_match_all('/VERSION_ID=\"([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*).$/m', $content, $version);
$distname = is_array($name) ? $name[1][0] : 'openSUSE'; $distname = is_array($name) ? $name[1][0] : 'openSUSE';
$distver = is_array($version) ? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) : 'Unknown'; $distver = is_array($version) ? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) : 'Unknown';
$distid = 'opensuse112'; $distid = 'opensuse112';
...@@ -276,85 +276,65 @@ class monitor_tools { ...@@ -276,85 +276,65 @@ class monitor_tools {
} }
//** Redhat //** RHEL (including compatible clones) & Fedora
elseif(file_exists('/etc/redhat-release')) { elseif(file_exists('/etc/redhat-release') && file_exists('/etc/os-release')) {
$content = file_get_contents('/etc/os-release');
$content = file_get_contents('/etc/redhat-release'); //preg_match('/(?<=PRETTY_NAME=\").+?(?=\")/', $content, $prettyname);
preg_match('/(?<=NAME=\").+?(?=\")/', $content, $name);
preg_match('/(?<=VERSION=\").+?(?=\")/', $content, $version);
preg_match('/(?<=VERSION_ID=\").+?(?=\")/', $content, $versionid);
if(stristr($content, 'Fedora release 9 (Sulphur)')) { if(stristr($prettyname[0], 'Fedora 32 (Thirty Two)')) {
$distname = 'Fedora';
$distver = '9';
$distid = 'fedora9';
$distbaseid = 'fedora';
} elseif(stristr($content, 'Fedora release 10 (Cambridge)')) {
$distname = 'Fedora';
$distver = '10';
$distid = 'fedora9';
$distbaseid = 'fedora';
} elseif(stristr($content, 'Fedora release 10')) {
$distname = 'Fedora';
$distver = '11';
$distid = 'fedora9';
$distbaseid = 'fedora';
} elseif(stristr($content, 'Fedora release 32 (Thirty Two)')) {
$distname = 'Fedora'; $distname = 'Fedora';
$distver = '32'; $distver = '32';
$distid = 'fedora32'; $distid = 'fedora32';
$distbaseid = 'fedora'; $distbaseid = 'fedora';
} elseif(stristr($content, 'Fedora release 33 (Thirty Three)')) { } elseif(stristr($prettyname[0], 'Fedora 33 (Thirty Three)')) {
$distname = 'Fedora'; $distname = 'Fedora';
$distver = '33'; $distver = '33';
$distid = 'fedora33'; $distid = 'fedora33';
$distbaseid = 'fedora'; $distbaseid = 'fedora';
} elseif(stristr($content, 'CentOS release 5.2 (Final)')) { //** RHEL 7 and compatible clones
$distname = 'CentOS'; } elseif(preg_match('/^(?:7|7\.[0-9]{1,2})$/', $versionid[0])) {
$distver = '5.2'; preg_match_all('/([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*)/', file_get_contents('/etc/redhat-release'), $centos7_string);
$distid = 'centos52'; $distname = $name[0];
$distbaseid = 'fedora'; $distver = is_array($centos7_string)? implode('.', array_filter(array($centos7_string[1][0],$centos7_string[2][0],$centos7_string[3][0]),'strlen')) : $version[0];
} elseif(stristr($content, 'CentOS release 5.3 (Final)')) { $distid = 'centos72';
$distname = 'CentOS'; $distbaseid = 'fedora';
$distver = '5.3'; //** RHEL 8 and compatible clones
$distid = 'centos53'; } elseif(preg_match('/^(?:8|8\.[0-9]{1,2})$/', $versionid[0])) {
$distname = $name[0];
$distver = $version[0];
$distid = 'centos80';
$distbaseid = 'fedora'; $distbaseid = 'fedora';
} elseif(stristr($content, 'CentOS release 5')) {
$distname = 'CentOS';
$distver = 'Unknown';
$distid = 'centos53';
$distbaseid = 'fedora';
} elseif(stristr($content, 'CentOS Linux release 6') || stristr($content, 'CentOS release 6')) {
$distname = 'CentOS';
$distver = 'Unknown';
$distid = 'centos53';
$distbaseid = 'fedora';
} elseif(stristr($content, 'CentOS Linux release 7')) {
preg_match_all('/([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*)/', $content, $version);
$distname = 'CentOS';
$distver = is_array($version)? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) :'Unknown';
$distbaseid = 'fedora';
$var=explode(" ", $content);
$var=explode(".", $var[3]);
$var=$var[0].".".$var[1];
if($var=='7.0' || $var=='7.1') {
$distid = 'centos70';
} else {
$distid = 'centos72';
}
} elseif(stristr($content, 'CentOS Linux release 8')) {
preg_match_all('/([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*)/', $content, $version);
$distname = 'CentOS';
$distver = is_array($version)? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) :'Unknown';
$distbaseid = 'fedora';
$var=explode(" ", $content);
$var=explode(".", $var[3]);
$var=$var[0].".".$var[1];
} else { } else {
$distname = 'Redhat'; $distname = 'Redhat';
$distver = 'Unknown'; $distver = 'Unknown';
$distid = 'fedora9'; $distid = 'fedora9';
$distbaseid = 'fedora'; $distbaseid = 'fedora';
} }
} elseif(file_exists('/etc/redhat-release') && !file_exists('/etc/os-release')) {
$content = file_get_contents('/etc/redhat-release');
if(stristr($content, 'CentOS Linux release 6') || stristr($content, 'CentOS release 6')) {
$distname = 'CentOS';
$distver = 'Unknown';
$distid = 'centos53';
$distbaseid = 'fedora';
} else {
$distname = 'Redhat';
$distver = 'Unknown';
$distid = 'fedora9';
$distbaseid = 'fedora';
}
} }
//** Gentoo //** Gentoo
elseif(file_exists('/etc/gentoo-release')) { elseif(file_exists('/etc/gentoo-release')) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment