Files
neighborhoodwatch/run.d/drupal
florian e0da46edca add scripts for CakePHP and PHPMyAdmin, courtesy of WvR.
Also include new logging options (verbosity)
2013-10-05 15:45:31 +00:00

77 lines
2.1 KiB
PHP
Executable File

#!/usr/bin/php -q
<?
require_once("toolkit.php");
// Retrieve current Drupal version as documented at http://www.goldcoastmedia.co.uk/blog/drupal-versions-with-php
//
$latest = NULL;
$url = 'http://updates.drupal.org/release-history/drupal/7.x';
$context = stream_context_create(array(
'http' => array(
'method' => 'GET',
'timeout' => 10,
),
));
$data = file_get_contents($url, FALSE, $context);
if($data)
$feed = simplexml_load_string($data);
if($feed && $feed instanceof SimpleXMLElement) {
// Check the property exists and assign
if( isset($feed->releases->release[0]->version) ) {
$dr_current = $feed->releases->release[0]->version;
// return $latest;
}
}
verbose("Current Drupal version: $dr_current", 1);
// Start checking hosts
//
checkHost(null, $dr_current);
if( $hosts != null ) {
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 = "localhost:";
if( $host != null ) {
$cmd = "ssh $host \"" . $cmd . "\"";
$hostidentifier = $host . ":";
}
exec($cmd, $results);
foreach($results as $instance) {
$parts = explode(':', $instance);
$location = substr($parts[0], 0, strlen($parts[0])-28);
if(substr($parts[1], 0, 16) == "define('VERSION'") {
$version = substr($parts[1], 19, strpos($parts[1], "'", 19)-19);
if($version < $dr_current) echo "WARNING: Outdated Drupal $version at $hostidentifier$location\n";
}
}
unset($results);
// For Drupal 7.x
$cmd = "locate includes/bootstrap.inc | xargs grep -H 'VERSION'";
if( $host != null ) {
$cmd = "ssh $host \"" . $cmd . "\"";
}
exec($cmd, $results);
foreach($results as $instance) {
$parts = explode(':', $instance);
$location = substr($parts[0], 0, strlen($parts[0])-23);
if(substr($parts[1], 0, 16) == "define('VERSION'") {
$version = substr($parts[1], 19, strpos($parts[1], "'", 19)-19);
if($version < $dr_current) echo "WARNING: Outdated Drupal $version at $host:$location\n";
}
}
unset($results);
}
?>