improved drupal detection process, including support for localhost. courtesy WvR

This commit is contained in:
florian
2013-10-05 14:57:03 +00:00
parent cc2248ce9d
commit 76d0a48898

View File

@@ -2,9 +2,9 @@
<? <?
// Fetch the host list to check // Fetch the host list to check
// //
if( getenv('CHK_HOSTS') == null ) { if(getenv('CHK_HOSTS') == null) {
$hosts = null; $hosts = null;
}else { } else {
$hosts = explode(' ', getenv('CHK_HOSTS')); $hosts = explode(' ', getenv('CHK_HOSTS'));
if (implode($hosts)=='') die("No hosts to check.\n"); if (implode($hosts)=='') die("No hosts to check.\n");
} }
@@ -30,9 +30,24 @@ if($feed && $feed instanceof SimpleXMLElement) {
} }
} }
// For Drupal 4.x - 6.x // Start checking hosts
foreach($hosts as $host) { //
$cmd = "ssh $host \"locate modules/system/system.module | xargs grep -H 'VERSION'\""; if( $hosts == null ) {
checkHost(null, $dr_current);
} else {
foreach($hosts as $host) {
checkHost($host, $dr_current);
}
}
function checkHost($host, $dr_current) {
// For Drupal 4.x - 6.x
$cmd = "locate modules/system/system.module | xargs grep -H 'VERSION'";
$hostidentifier = "";
if( $host != null ) {
$cmd = "ssh $host \"" . $cmd . "\"";
$hostidentifier = $host . ":";
}
exec($cmd, $results); exec($cmd, $results);
foreach($results as $instance) { foreach($results as $instance) {
@@ -40,16 +55,16 @@ foreach($hosts as $host) {
$location = substr($parts[0], 0, strlen($parts[0])-28); $location = substr($parts[0], 0, strlen($parts[0])-28);
if(substr($parts[1], 0, 16) == "define('VERSION'") { if(substr($parts[1], 0, 16) == "define('VERSION'") {
$version = substr($parts[1], 19, strpos($parts[1], "'", 19)-19); $version = substr($parts[1], 19, strpos($parts[1], "'", 19)-19);
if($version < $dr_current) echo "WARNING: Outdated Drupal $version at $host:$location\n"; if($version < $dr_current) echo "WARNING: Outdated Drupal $version at $hostidentifier$location\n";
} }
} }
unset($results); unset($results);
} // For Drupal 7.x
$cmd = "locate includes/bootstrap.inc | xargs grep -H 'VERSION'";
// For Drupal 7.x if( $host != null ) {
foreach($hosts as $host) { $cmd = "ssh $host \"" . $cmd . "\"";
$cmd = "ssh $host \"locate includes/bootstrap.inc | xargs grep -H 'VERSION'\""; }
exec($cmd, $results); exec($cmd, $results);
foreach($results as $instance) { foreach($results as $instance) {