initial commit of file from CVS for smeserver-phpsysinfo on Sat Sep 7 20:53:46 AEST 2024
This commit is contained in:
208
root/opt/phpsysinfo/tools/checkdistro.php
Normal file
208
root/opt/phpsysinfo/tools/checkdistro.php
Normal file
@@ -0,0 +1,208 @@
|
||||
<?php
|
||||
echo "<!DOCTYPE html>";
|
||||
echo "<meta charset=\"UTF-8\">";
|
||||
echo "<title> </title>";
|
||||
echo "<body>";
|
||||
if (PHP_OS != 'Linux') {
|
||||
echo "Test works only on Linux";
|
||||
echo "</body>";
|
||||
die();
|
||||
}
|
||||
|
||||
define('APP_ROOT', dirname(__FILE__).'/..');
|
||||
require_once APP_ROOT.'/includes/interface/class.PSI_Interface_OS.inc.php';
|
||||
require_once APP_ROOT.'/includes/os/class.OS.inc.php';
|
||||
require_once APP_ROOT.'/includes/to/class.System.inc.php';
|
||||
require_once APP_ROOT.'/includes/os/class.Linux.inc.php';
|
||||
define('PSI_USE_VHOST', false);
|
||||
define('PSI_DEBUG', false);
|
||||
define('PSI_LOAD_BAR', false);
|
||||
|
||||
$log_file = "";
|
||||
$lsb = true; //enable detection lsb_release -a
|
||||
$lsbfile = true; //enable detection /etc/lsb-release
|
||||
|
||||
class Error
|
||||
{
|
||||
public static function singleton()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
class Parser
|
||||
{
|
||||
public static function lspci()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
public static function df()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
class CommonFunctions
|
||||
{
|
||||
private static function _parse_log_file($string)
|
||||
{
|
||||
global $log_file;
|
||||
if (file_exists($log_file)) {
|
||||
$contents = @file_get_contents($log_file);
|
||||
if ($contents && preg_match("/^\-\-\-\-\-\-\-\-\-\-".preg_quote($string, '/')."\-\-\-\-\-\-\-\-\-\-\n/m", $contents, $matches, PREG_OFFSET_CAPTURE)) {
|
||||
$findIndex = $matches[0][1];
|
||||
if (preg_match("/\n/m", $contents, $matches, PREG_OFFSET_CAPTURE, $findIndex)) {
|
||||
$startIndex = $matches[0][1]+1;
|
||||
if (preg_match("/^\-\-\-\-\-\-\-\-\-\-/m", $contents, $matches, PREG_OFFSET_CAPTURE, $startIndex)) {
|
||||
$stopIndex = $matches[0][1];
|
||||
|
||||
return substr($contents, $startIndex, $stopIndex-$startIndex);
|
||||
} else {
|
||||
return substr($contents, $startIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function rfts($strFileName, &$strRet, $intLines = 0, $intBytes = 4096, $booErrorRep = true)
|
||||
{
|
||||
global $lsb;
|
||||
global $lsbfile;
|
||||
if ($lsb || $lsbfile || ($strFileName != "/etc/lsb-release")) {
|
||||
$strRet=self::_parse_log_file($strFileName);
|
||||
if ($strRet && ($intLines == 1) && (strpos($strRet, "\n") !== false)) {
|
||||
$strRet=trim(substr($strRet, 0, strpos($strRet, "\n")));
|
||||
}
|
||||
|
||||
return $strRet;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function executeProgram($strProgramname, $strArgs, &$strBuffer, $booErrorRep = true)
|
||||
{
|
||||
global $lsb;
|
||||
$strBuffer = '';
|
||||
if ($strProgramname=='lsb_release') {
|
||||
return $lsb && ($strBuffer = self::_parse_log_file('lsb_release -a'));
|
||||
} else {
|
||||
return $strBuffer = self::_parse_log_file($strProgramname);
|
||||
}
|
||||
}
|
||||
|
||||
public static function fileexists($strFileName)
|
||||
{
|
||||
global $log_file;
|
||||
global $lsb;
|
||||
global $lsbfile;
|
||||
if (file_exists($log_file)
|
||||
&& ($lsb || $lsbfile || ($strFileName != "/etc/lsb-release"))
|
||||
&& ($contents = @file_get_contents($log_file))
|
||||
&& preg_match("/^\-\-\-\-\-\-\-\-\-\-".preg_quote($strFileName, '/')."\-\-\-\-\-\-\-\-\-\-\n/m", $contents)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function gdc()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
$system = new Linux();
|
||||
if ($handle = opendir(APP_ROOT.'/sample/distrotest')) {
|
||||
echo "<table cellpadding=\"2\" border=\"1\" CELLSPACING=\"0\"";
|
||||
echo "<tr>";
|
||||
echo "<td>Distrotest sample</td>";
|
||||
echo "<td>Distro Name</td>";
|
||||
echo "<td>Distro Icon</td>";
|
||||
echo "<td>Distro Name (no lsb_release)</td>";
|
||||
echo "<td>Distro Icon (no lsb_release)</td>";
|
||||
echo "<td>Distro Name (no lsb_release and no /etc/lsb-release)</td>";
|
||||
echo "<td>Distro Icon (no lsb_release and no /etc/lsb-release)</td>";
|
||||
echo "</tr>";
|
||||
while (false !== ($entry = readdir($handle))) {
|
||||
if (($entry!=".")&&($entry!="..")) {
|
||||
if ($shandle = opendir(APP_ROOT."/sample/distrotest/$entry")) {
|
||||
while (false !== ($sentry = readdir($shandle))) {
|
||||
if (($sentry!=".")&&($sentry!="..")) {
|
||||
$log_file=APP_ROOT.'/sample/distrotest/'.$entry.'/'.$sentry;
|
||||
echo "<tr>";
|
||||
echo "<td>".$entry.'/'.$sentry."</td>";
|
||||
|
||||
$lsb = true;
|
||||
$lsbfile = true;
|
||||
$sys=$system->getSys();
|
||||
$distro=$sys->getDistribution();
|
||||
$icon=$sys->getDistributionIcon();
|
||||
if ($icon == '') $icon="unknown.png";
|
||||
if ($icon != $entry.'.png')
|
||||
echo "<td style='color:red'>";
|
||||
else
|
||||
echo "<td>";
|
||||
echo $distro."</td>";
|
||||
if ($icon != $entry.'.png')
|
||||
echo "<td style='color:red'>";
|
||||
else
|
||||
echo "<td>";
|
||||
echo "<img src=\"../gfx/images/".$icon."\" height=\"16\" width=\"16\">";
|
||||
echo $icon."</td>";
|
||||
$sys->setDistribution("");
|
||||
$sys->setDistributionIcon("");
|
||||
|
||||
$lsb = false;
|
||||
$lsbfile = true;
|
||||
$sys=$system->getSys();
|
||||
$distro=$sys->getDistribution();
|
||||
$icon=$sys->getDistributionIcon();
|
||||
if ($icon == '') $icon="unknown.png";
|
||||
if ($icon != $entry.'.png')
|
||||
echo "<td style='color:red'>";
|
||||
else
|
||||
echo "<td>";
|
||||
echo $distro."</td>";
|
||||
if ($icon != $entry.'.png')
|
||||
echo "<td style='color:red'>";
|
||||
else
|
||||
echo "<td>";
|
||||
echo "<img src=\"../gfx/images/".$icon."\" height=\"16\" width=\"16\">";
|
||||
echo $icon."</td>";
|
||||
$sys->setDistribution("");
|
||||
$sys->setDistributionIcon("");
|
||||
|
||||
$lsb = false;
|
||||
$lsbfile = false;
|
||||
$sys=$system->getSys();
|
||||
$distro=$sys->getDistribution();
|
||||
$icon=$sys->getDistributionIcon();
|
||||
if ($icon == '') $icon="unknown.png";
|
||||
if ($icon != $entry.'.png')
|
||||
echo "<td style='color:red'>";
|
||||
else
|
||||
echo "<td>";
|
||||
echo $distro."</td>";
|
||||
if ($icon != $entry.'.png')
|
||||
echo "<td style='color:red'>";
|
||||
else
|
||||
echo "<td>";
|
||||
echo "<img src=\"../gfx/images/".$icon."\" height=\"16\" width=\"16\">";
|
||||
echo $icon."</td>";
|
||||
$sys->setDistribution("");
|
||||
$sys->setDistributionIcon("");
|
||||
|
||||
echo "</tr>";
|
||||
}
|
||||
}
|
||||
closedir($shandle);
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</table>";
|
||||
closedir($handle);
|
||||
}
|
||||
echo "</body>";
|
Reference in New Issue
Block a user