#! /bin/sh # $Id$ ######################################################################## # Aegir quick upgrade script # # This script also *DOES NOT CHECK* if the requirements have been met. # It's up to the admin to follow the proper upgrade instructions or use # the packages provided by their platform. ######################################################################## msg() { echo "==> $*" } # basic variables, change before running AEGIR_VERSION="6.x-2.x" DRUSH_DIR=$HOME/drush DRUSH=$DRUSH_DIR/drush.php if which drush 2> /dev/null > /dev/null && which drush | grep -v 'no drush in' > /dev/null; then msg "Drush is in the path, good" # we do not set DRUSH to `which drush` because we're not sure how 'which' will behave DRUSH=drush DRUSH_DIR=`which drush` # yes, this will fail on non-GNU readlink, but we don't care - it # just means drush won't be upgraded if it's the path on those # platforms DRUSH_DIR=`readlink -f $DRUSH_DIR` DRUSH_DIR=`dirname $DRUSH_DIR` elif [ -x $DRUSH ] ; then msg "Drush found in $DRUSH, good" DRUSH="php $DRUSH" else msg "Could not find drush in $DRUSH or in $PATH" exit 1 fi TEMPFILE=`mktemp` $DRUSH --pipe @hostmaster status | egrep "site_uri|drupal_root" >> $TEMPFILE || true if grep -q 'site_uri' $TEMPFILE; then # this sources the result of drush --pipe so we initialise shell variables used later . $TEMPFILE else msg 'could not find running hostmaster site' msg 'try running "drush @hostmaster status" to diagnose and repair' exit 1 fi AEGIR_DOMAIN="$site_uri" OLD_DRUPAL_DIR="$drupal_root" HOME="$HOME" DRUPAL_DIR=$HOME/hostmaster-$AEGIR_VERSION DRUSH_VERSION=7.x-4.5 DRUSH_MAKE_VERSION=6.x-2.3 BACKUP_DIR=$HOME/pre-upgrade-`date '+%F-%H%M'` ######################################################################## # functions # simple prompt prompt_yes_no() { while true ; do printf "$* [Y/n] " read answer if [ -z "$answer" ] ; then return 0 fi case $answer in [Yy]|[Yy][Ee][Ss]) return 0 ;; [Nn]|[Nn][Oo]) return 1 ;; *) echo "Please answer yes or no" ;; esac done } ######################################################################## # Main script AEGIR_HOST=`uname -n` AEGIR_DOMAIN=${1:-$AEGIR_DOMAIN} msg "Aegir $AEGIR_VERSION automated upgrade script" if [ `whoami` = "root" ] ; then msg "This script should be run as the aegir user, not as root." exit 1 fi msg "This script makes the following assumptions: " cat <