aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2009-12-29 16:32:29 -0200
committerSilvio Rhatto <rhatto@riseup.net>2009-12-29 16:32:29 -0200
commit1d663359337b4c5074bb5605851fce0c73ea4445 (patch)
treeb62bc28e010155b77248c50e40f039c3ea176ac9
parente2a75915f76409cdc75f1b330c635be58f1950cc (diff)
downloadpuppet-drupal-1d663359337b4c5074bb5605851fce0c73ea4445.tar.gz
puppet-drupal-1d663359337b4c5074bb5605851fce0c73ea4445.tar.bz2
New management scripts
-rw-r--r--manifests/init.pp22
-rw-r--r--templates/drupal-deploy.sh.erb20
-rw-r--r--templates/drupal-update.sh (renamed from templates/drush-update.sh.erb)0
-rw-r--r--templates/drupal-upgrade.sh.erb74
4 files changed, 114 insertions, 2 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 8c928ff..a501b0c 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -9,12 +9,30 @@ class drupal inherits pear {
ensure => installed,
}
- # Drush update
- file { "/usr/local/bin/drush-update.sh":
+ # Drupal update script
+ file { "/usr/local/bin/drupal-update.sh":
ensure => present,
content => template('drupal/drush-update.sh'),
user => root,
group => root,
mode => 755,
}
+
+ # Drupal upgrade script
+ file { "/usr/local/bin/drupal-upgrade.sh":
+ ensure => present,
+ content => template('drupal/drush-upgrade.sh'),
+ user => root,
+ group => root,
+ mode => 755,
+ }
+
+ # Drupal deployment script
+ file { "/usr/local/bin/drupal-deploy.sh":
+ ensure => present,
+ content => template('drupal/drupal-deploy.sh'),
+ user => root,
+ group => root,
+ mode => 755,
+ }
}
diff --git a/templates/drupal-deploy.sh.erb b/templates/drupal-deploy.sh.erb
new file mode 100644
index 0000000..e7b51ae
--- /dev/null
+++ b/templates/drupal-deploy.sh.erb
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Deploy a fresh drupal tree.
+#
+
+if [ "$#" != "1" ]; then
+ echo "Usage: `basename $0` <version>"
+ exit 1
+fi
+
+NEW="$1"
+BASE="<%= $apache_www_folder %>"
+
+cd $BASE
+
+# Deploy a fresh drupal tree
+wget http://ftp.drupal.org/files/projects/drupal-$NEW.tar.gz
+tar zxvf drupal-$NEW.tar.gz && rm drupal-$NEW.tar.gz
+chown -R root.root drupal-$NEW/
+cd drupal-$NEW && rm -rf sites
diff --git a/templates/drush-update.sh.erb b/templates/drupal-update.sh
index 75e8381..75e8381 100644
--- a/templates/drush-update.sh.erb
+++ b/templates/drupal-update.sh
diff --git a/templates/drupal-upgrade.sh.erb b/templates/drupal-upgrade.sh.erb
new file mode 100644
index 0000000..670a6e5
--- /dev/null
+++ b/templates/drupal-upgrade.sh.erb
@@ -0,0 +1,74 @@
+#!/bin/bash
+#
+# Upgrade a drupal instance using upstream source.
+#
+
+if [ "$#" != "2" ]; then
+ echo "Usage: `basename $0` <old_version> <new_version>"
+ exit 1
+fi
+
+function get_major {
+ echo $1 | sed -e 's/\(^.\).*/\1/'
+}
+
+OLD="$1"
+NEW="$2"
+OLD_MAJOR="`get_major $OLD`"
+NEW_MAJOR="`get_major $NEW`"
+BASE="<%= $apache_www_folder %>"
+EXTRA_FOLDERS=""
+
+if [ "$OLD_MAJOR" != "$NEW_MAJOR" ]; then
+ echo "Major versions doesn't match"
+ exit 1
+fi
+
+# Set drupal series
+if [ "$NEW_MAJOR" == "4" ]; then
+ # Get minor versions
+ NEW_MINOR="`echo $NEW | sed -e "s/^$NEW_MAJOR\.//"`"
+ OLD_MINOR="`echo $OLD | sed -e "s/^$OLD_MAJOR\.//"`"
+
+ if [ "$OLD_MINOR" != "$NEW_MINOR" ]; then
+ echo "Minor versions doesn't match"
+ exit 1
+ fi
+ DRUPAL_SERIES="$NEW_MAJOR.$MINOR"
+else
+ DRUPAL_SERIES="$NEW_MAJOR"
+fi
+
+cd $BASE
+
+# Deploy a fresh drupal tree
+drupal-deploy.sh $NEW
+
+# Copy files
+cp -Rp ../drupal-$OLD/{.htaccess,favicon.ico,files/,sites/} . &> /dev/null
+for extra_folder in $EXTRA_FOLDERS; do
+ if [ -d ../drupal-$OLD/$extra_folder ]; then
+ cp -Rp ../drupal-$OLD/$extra_folder .
+ fi
+done
+
+# Legacy stuff for Drupal 4.x.x
+if [ "$NEW_MAJOR" == "4" ]; then
+ rsync -av ../drupal-$OLD/themes/ themes/
+ for module in `ls ../drupal-$OLD/modules`; do
+ if [ -d "../drupal-$OLD/modules/$module" ]; then
+ cp -Rp ../drupal-$OLD/modules/$module modules/
+ fi
+ done
+fi
+
+# Copy installation profiles for Drupal 5.x or newer
+if [ "$NEW_MAJOR" != "4" ]; then
+ rsync -av --exclude=default ../drupal-$OLD/profiles/ profiles/
+fi
+
+# Change symlink to point to the new location
+cd $BASE ; rm drupal-$DRUPAL_SERIES && ln -s drupal-$NEW drupal-$DRUPAL_SERIES
+
+# Done
+echo "Check procedure and remove drupal-$OLD once you make sure that everything is fine."