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,
+ }
}
--- /dev/null
+#!/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
--- /dev/null
+#!/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."