Module automatisch über die Shell ziehen
am 21.01.2009 - 13:53 Uhr in
Hallo
ich habe mittlerweile 3 Server und linke die Drupals aus einem zentralem Repository über symlinks in die eigentlichen Ordner der Kunden.
Die Kunden haben nur Zugriff auf /sites. Soweit so gut, das leidige aktualisieren wird damit schon mal einfacher. Aber ich brauche auf allen Servern am besten den gleichen Stand an Modulen und will das nicht immer von Hand ziehen. Drush ist eine nette Sache, geht so aber nicht, da es immer von einer Drupal Installation ausgeht.
Ich habe mir also ein kleines PHP Skript geschrieben, das ich in meinem Modul Ordner ausführe und das mir dann die Module so in etwa wie Drush das macht von Drupal.org holt. Teile des Skripts sind aus Drush also meinen Dank an den Autor!
ACHTUNG!
Ich übernehme keine Verantwortung für Funktion oder Funktionalität! Ich dachte das könnte wen interessieren. Aber ihr müsst wirklich wissen was ihr da tut! Das Skript kann leicht was kaputt machen und könnte ein Sicherheitsrisiko darstellen!
<?php
$modules = array(
'admin_menu',
'ajax_comments',
'auto_nodetitle',
'bookmarks',
'bueditor',
);
foreach($modules AS $module) {
//load xml data from drupal.org. Major versions seems always tobe 5.x or 6.x
$data = simplexml_load_string(file_get_contents('http://updates.drupal.org/release-history/'.$module.'/6.x','r'));
foreach($data->releases->release AS $release) {
//all releases should be ordered by date so we can just pick the first recommended we find!
if((int)$data->recommended_major == (int)$release->version_major) {
//use wget to load to current folder
exec('wget '.$release->download_link);
// Get the filename...
$filename = explode('/', $release->download_link);
$filename = array_pop($filename);
//simple security check
if (md5_file($filename) != $release->mdhash) {
unlink($filename);
die('MD5 Check was faulty! '.$filename);
}
//untar always overwrites old files so this script can update if you want.
exec('tar -xzf '.$filename);
unlink($filename);
break;
}
}
}
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
du könntest eigentlich
am 31.01.2009 - 18:28 Uhr
du könntest eigentlich einfach drush nehmen und per svn Modus benutzen
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Drush braucht aber eine
am 31.01.2009 - 19:34 Uhr
Drush braucht aber eine aktive Drupal installation, ausser ich habe was übersehen. Und ich will das neutral mit einer zentralen Liste über Cron laufen lassen.
Und wieso svn?
---
Viele Grüße,
Kars-T
Viele Grüße,
Kars-T