Skip to content
AegirSetupA.sh.txt 76 KiB
Newer Older
#!/bin/bash


###----------------------------------------###
###
###  Octopus Aegir Installer
Grazyna Jaworska's avatar
Grazyna Jaworska committed
###  Copyright (C) 2010-2013 Omega8.cc
###  noc@omega8.cc www.omega8.cc
###
###  This program is free software. You can
###  redistribute it and/or modify it under
###  the terms of the GNU GPL as published by
###  the Free Software Foundation, version 2
###  or later.
###
###  This program is distributed in the hope
###  that it will be useful, but WITHOUT ANY
###  WARRANTY; without even the implied
###  warranty of MERCHANTABILITY or FITNESS
###  FOR A PARTICULAR PURPOSE. See the GNU GPL
###  for more details.
###
###  You should have received a copy of the
###  GNU GPL along with this program.
###  If not, see http://www.gnu.org/licenses/
###  Code: http://code.aegir.cc/aegir
###
###----------------------------------------###


###----------------------------------------###
### DON'T EDIT ANYTHING BELOW THIS LINE    ###
###----------------------------------------###

_INSTALLER_VERSION=EDIT_INSTALLER_VERSION
_CIVICRM_M6=EDIT_CIVICRM_M6
_CIVICRM_M7=EDIT_CIVICRM_M7
_CIVICRM6=EDIT_CIVICRM6
_COD=EDIT_COD
_COM_MERCE=EDIT_COM_MERCE
_COMMERCE=EDIT_COMMERCE
_D6COMMONS=EDIT_D6COMMONS
Grazyna Jaworska's avatar
Grazyna Jaworska committed
_D7COMMONS=EDIT_D7COMMONS
_DRUPAL5=EDIT_DRUPAL5
_DRUPAL7D="EDIT_DRUPAL7-dev"
_DRUPAL7P="EDIT_DRUPAL7-prod"
_DRUPAL7S="EDIT_DRUPAL7-stage"
_DRUPAL8=EDIT_DRUPAL8
_DRUSH_CC_REQ=EDIT_DRUSH_CC_REQ
_ELMS=EDIT_ELMS
_MANAGINGNEWS=EDIT_MANAGINGNEWS
_MART_PLUG=EDIT_MART_PLUG
_MARTPLUG=EDIT_MARTPLUG
_NODESTREAM6=EDIT_NODESTREAM6
_NODESTREAM7=EDIT_NODESTREAM7
_OCTOPUS_VIDEO=EDIT_OCTOPUS_VIDEO
_OPEN_DEALS=EDIT_OPEN_DEALS
_OPENACADEMY=EDIT_OPENACADEMY
_OPENATRIUM=EDIT_OPENATRIUM
_OPENCHURCH=EDIT_OPENCHURCH
_OPENDEALS=EDIT_OPENDEALS
_OPENENTERPRISE=EDIT_OPENENTERPRISE
_OPENOUTREACH=EDIT_OPENOUTREACH
_OPENPUBLIC=EDIT_OPENPUBLIC
_OPENPUBLISH=EDIT_OPENPUBLISH
_PANOPOLY=EDIT_PANOPOLY
_PROSEPOINT=EDIT_PROSEPOINT
_SMALLCORE_6_LANG=EDIT_SMALLCORE_6_LANG
_SMALLCORE6=EDIT_SMALLCORE6
_SMALLCORE7=EDIT_SMALLCORE7
_SMALLCORE8=EDIT_SMALLCORE8
_UBER_CART_SEVEN=EDIT_UBER_CART_SEVEN
_UBERCART=EDIT_UBERCART
_VIDEOLA=EDIT_VIDEOLA
_ADM_EMAIL="EDIT_MY_EMAIL"
_AEGIR_VERSION=EDIT_AEGIR_VERSION
_ALL_DISTRO=EDIT_ALL_DISTRO
_AUTOPILOT=EDIT_AUTOPILOT
_BOA_REPO_GIT_URL=EDIT_BOA_REPO_GIT_URL
_BOA_REPO_NAME=EDIT_BOA_REPO_NAME
_CLIENT_CORES=EDIT_CLIENT_CORES
_CLIENT_EMAIL="EDIT_CLIENT_EMAIL"
Barracuda's avatar
Barracuda committed
_CLIENT_OPTION=EDIT_CLIENT_OPTION
_DEBUG_MODE=EDIT_DEBUG_MODE
_DIST_INSTALL=NO
_DISTRO=EDIT_DISTRO
_DOMAIN=EDIT_DOMAIN
_DRUSH_VERSION=EDIT_DRUSH_VERSION
_HM_DISTRO=EDIT_HM_DISTRO
_HM_ONLY=EDIT_HM_ONLY
_HOT_SAUCE=EDIT_HOT_SAUCE
_LAST_ALL=EDIT_LAST_ALL
_LAST_HMR=EDIT_LAST_HMR
_LASTNUM=EDIT_LASTNUM
_NOW=EDIT_NOW
_O_CONTRIB_UP=EDIT_O_CONTRIB_UP
_PHP_CLI_VERSION=EDIT_PHP_CLI_VERSION
_PHP_FPM_VERSION=EDIT_PHP_FPM_VERSION
_PHP_MODERN_ONLY=EDIT_PHP_MODERN_ONLY
_PLATFORMS_LIST="EDIT_PLATFORMS_LIST"
_PURGE_FOR_SEVEN=EDIT_PURGE_FOR_SEVEN
_PURGE_MODE=EDIT_PURGE_MODE
_REL_VERSION=`lsb_release -sc`
_REMOTE_CACHE_IP=EDIT_REMOTE_CACHE_IP
_STRONG_PASSWORDS=EDIT_STRONG_PASSWORDS
_THIS_DB_HOST=EDIT_THIS_DB_HOST
_THISHTIP=EDIT_THISHTIP
_USE_CURRENT=EDIT_USE_CURRENT
_USRG=EDIT_USRG
_WEBG=EDIT_WEBG
#
_USER=EDIT_USER
_ROOT="/data/disk/$_USER"
_AEGIR_ROOT="$_ROOT/aegir/distro/$_HM_DISTRO"
_DISTRO_ROOT="$_ROOT/distro/$_DISTRO"
#
if [ "$_PHP_CLI_VERSION" = "5.3" ] && [ -x "/opt/local/bin/php" ] ; then
  _L_PHP_CLI=/opt/local/bin
else
  _L_PHP_CLI=/usr/local/bin
fi
_DRUSHCMD="$_L_PHP_CLI/php $_ROOT/tools/drush/drush.php"
#
PATH=$_L_PHP_CLI:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin

###---### Functions
# noticeable messages
msg() {
Barracuda's avatar
Barracuda committed
# Success msg
success () {
	msg "$1 Succeeded"
Barracuda's avatar
Barracuda committed
}
#
# Error msg
fatal () {
Barracuda's avatar
Barracuda committed
	msg "Fatal Error Occurred: $1"
	msg "Cannot continue installation"
Barracuda's avatar
Barracuda committed
	exit 1
}
# Silent runner.
st_runner () {
  CMD="$1"
  touch busy
  if [ "$_SPINNER" = "YES" ] ; then
    bash $_SRCDIR/spinner busy &
  fi
  if $CMD >> $_LOG; then
    rm busy
    sleep 1
    return 0
  else
    rm busy
    sleep 1
    echo "$CMD failed.  Error (if any): $?"
    echo " "
    echo "Displaying the last 15 lines of $_LOG to help troubleshoot this problem"
    echo " "
    tail -15 $_LOG
    return 1
  fi
}
#
# Small spinner
mrun () {
	CMD="$1"
	touch busy
	if [ "$_SPINNER" = "YES" ] ; then
	  bash $_SRCDIR/spinner busy &
	fi
	if $CMD >> $_LOG; then
# Simple prompt
prompt_yes_no () {
if [ "$_AUTOPILOT" = "YES" ] ; then
  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
# Remove dangerous stuff from the string.
sanitize_string () {
  echo "$1" | sed 's/[\`\#\"\{\(\$\@]//g' | sed 's/\(['"'"'\]\)//g'
update_redis_password () {
  if [ ! -e "/root/.redis.pass.txt" ] && [ -e "/etc/redis/redis.conf" ] ; then
    msg "INIT A: Generate random password for Redis server"
    touch /root/.redis.pass.txt
    chmod 0600 /root/.redis.pass.txt &> /dev/null
    _ESC_RPASS=""
    _LEN_RPASS=0
    if [ "$_STRONG_PASSWORDS" = "YES" ] ; then
      _ESC_RPASS=$(randpass 32 alnum)
      _ESC_RPASS=`echo -n $_ESC_RPASS | tr -d "\n"`
      _LEN_RPASS=$(echo ${#_ESC_RPASS})
    fi
    if [ -z "$_ESC_RPASS" ] || [ $_LEN_RPASS -lt 19 ] ; then
      _ESC_RPASS=`echo -n $_ESC_RPASS | tr -d "\n"`
      _ESC_RPASS=`sanitize_string "$_ESC_RPASS"`
    echo "$_ESC_RPASS" > /root/.redis.pass.txt
  fi
  if [ -e "/root/.redis.pass.txt" ] && [ -e "/etc/redis/redis.conf" ] ; then
    if [ -z "$_ESC_RPASS" ] ; then
      RPASS=`cat /root/.redis.pass.txt`
      RPASS=`echo -n $RPASS | tr -d "\n"`
    else
      RPASS="$_ESC_RPASS"
    fi
    sed -i "s/^requirepass.*/requirepass $RPASS/g" /etc/redis/redis.conf &> /dev/null
    sed -i "s/isfoobared/$RPASS/g" /data/conf/global.inc                 &> /dev/null
    sed -i "s/isfoobared/$RPASS/g" /var/aegir/config/includes/global.inc &> /dev/null
  fi
}
#
# stop on error
# set -e ### disabled for debugging
_SRCDIR=/opt/tmp/files
_LOG=/var/backups/octopus-$_USER-$_NOW.log
# Create shared dirs
create_shared_dirs () {
  msg "$_STATUS A: Creating shared directories, please wait..."
  if [ ! -d "$_CORE" ] ; then
    mkdir -p $_CORE
    mkdir -p /data/src
  fi
  chown $_USER:$_USRG /data/all &> /dev/null
  if [ ! -e "$_CORE/o_contrib/ctrl-$_INSTALLER_VERSION" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
    chown -R $_USER:$_USRG $_CORE/o_contrib &> /dev/null
  if [ ! -e "$_CORE/o_contrib_seven/ctrl-$_INSTALLER_VERSION" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
    chown -R $_USER:$_USRG $_CORE/o_contrib_seven &> /dev/null
  if [ ! -e "/data/all/$_LAST_ALL/o_contrib/ctrl-$_INSTALLER_VERSION" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
    chown -R $_USER:$_USRG /data/all/$_LAST_ALL/o_contrib &> /dev/null
  if [ ! -e "/data/all/$_LAST_ALL/o_contrib_seven/ctrl-$_INSTALLER_VERSION" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
    chown -R $_USER:$_USRG /data/all/$_LAST_ALL/o_contrib_seven &> /dev/null
  chown -R $_USER:$_USRG /data/src &> /dev/null
  chown -R $_USER:$_USRG /opt/tmp &> /dev/null
  chown -R $_USER:$_USRG /data/conf &> /dev/null
  chown -R $_USER:$_USRG /data/all/000 &> /dev/null
  chmod 777 $_CORE /data/all /data/src /data /data/disk /data/conf &> /dev/null
# fix for FServer broken due to required now strongarm
feature_server_fix_002 () {
if [ ! -e "/var/log/feature-server-fixed-002.log" ] ; then
msg "UPGRADE A: Adding missing strongarm module to old fserver platforms"
REVISIONS="001 002 003 004 005 006 007 008 009 010 011 012 013 014"
for i in $REVISIONS; do
  if [ -d "/data/all/$i/fserver" ] ; then
    if [ ! -d "/data/all/$i/fserver/profiles/feature_server/modules/strongarm" ] ; then
      cd; $_DRUSHCMD dl strongarm-6.x-2.2 --destination=/data/all/$i/fserver/profiles/feature_server/modules &> /dev/null
      cd /data/all/$i/fserver/profiles/feature_server
      rm -f feature_server.make
      rm -f feature_server.profile
      cp -af /opt/tmp/$_BOA_REPO_NAME/aegir/makefiles/feature_server.make ./
      cp -af /opt/tmp/$_BOA_REPO_NAME/aegir/makefiles/feature_server.profile ./
      if [ -e "$_ROOT/.drush/hostmaster.alias.drushrc.php" ] ; then
        _THIS_HOSTMASTER=`cat $_ROOT/.drush/hostmaster.alias.drushrc.php | grep 'site_path' | cut -d: -f2 | awk '{ print $3}' | sed "s/[\,']//g"`
        cd _THIS_HOSTMASTER &> /dev/null
        su -s /bin/bash - $_USER -c "$_DRUSHCMD --root=$_ROOT/distro/$i/fserver provision-save @platform_FeatureServerPF$i &> /dev/null"
      msg "UPGRADE A: Missing strongarm added to /data/all/$i/fserver"
touch /var/log/feature-server-fixed-002.log
REVISIONS="001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027"
RMMODULES="drupal-nginx-fast-x-accel-redirect varnish bakery session443 cookie_cache_bypass_adv module_supports backup_migrate purge expire imageinfo_cache httprl boost"
  if [ -d "/data/all/$i/o_contrib" ] && [ ! -e "/data/all/$i/o_contrib/update-018.info" ] ; then
    for m in $RMMODULES; do
      if [ -d "/data/all/$i/o_contrib/$m" ] ; then
        rm -f -r /data/all/$i/o_contrib/$m
        msg "UPGRADE A: Removed /data/all/$i/o_contrib/$m"
    git clone --branch 6.x-1.x git://github.com/omega8cc/boost.git /data/all/$i/o_contrib/boost &> /dev/null
    rm -f -r /data/all/$i/o_contrib/boost/.git
    wget -q -U iCab http://ftp.drupal.org/files/projects/backup_migrate-6.x-2.6.tar.gz
    if [ "$_PURGE_MODE" = "ON" ] ; then
      wget -q -U iCab http://ftp.drupal.org/files/projects/purge-6.x-1.6.tar.gz
      ### git clone --branch 6.x-1.x-revert git://github.com/omega8cc/purge.git /data/all/$i/o_contrib/purge &> /dev/null
      git clone --branch 6.x-1.x http://git.drupal.org/project/expire.git /data/all/$i/o_contrib/expire &> /dev/null
      ### rm -f -r /data/all/$i/o_contrib/purge/.git
      rm -f -r /data/all/$i/o_contrib/expire/.git
    for archive in ./*.tar.gz; do
      tar -xzf "$archive" &> /dev/null
    done
    rm -f *.tar.gz
    if [ -d "/data/all/$i/o_contrib/cache_backport" ] ; then
      rm -f -r /data/all/$i/o_contrib/cache_backport
    fi
    if [ -d "/data/all/$i/o_contrib/redis" ] ; then
      rm -f -r /data/all/$i/o_contrib/redis
    fi
    if [ -e "/data/all/000/modules/cache_backport" ] && [ ! -L "/data/all/$i/o_contrib/cache_backport" ] ; then
      ln -s /data/all/000/modules/cache_backport /data/all/$i/o_contrib/cache_backport
    fi
    if [ -e "/data/all/000/modules/redis" ] && [ ! -L "/data/all/$i/o_contrib/redis" ] ; then
      ln -s /data/all/000/modules/redis /data/all/$i/o_contrib/redis
    fi
    touch /data/all/$i/o_contrib/update-018.info
    msg "UPGRADE A: New modules in /data/all/$i/o_contrib: purge expire backup_migrate"
    for p in `find /data/all/$i/ -maxdepth 1 -mindepth 1 -type d | sort`; do
      if [ -d "$p/modules/cookie_cache_bypass" ] ; then
        rm -f -r $p/modules/cookie_cache_bypass
      fi
    done
  fi
done
cd
}
REVISIONS="001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027"
RMMODULES="session443 cookie_cache_bypass_adv purge expire agrcache httprl filefield_nginx_progress boost"
  if [ -d "/data/all/$i/o_contrib_seven" ] && [ ! -e "/data/all/$i/o_contrib_seven/update-018.info" ] ; then
    for m in $RMMODULES; do
      if [ -d "/data/all/$i/o_contrib_seven/$m" ] ; then
        rm -f -r /data/all/$i/o_contrib_seven/$m
        msg "UPGRADE A: Removed /data/all/$i/o_contrib_seven/$m"
    if [ "$_PURGE_MODE" = "ON" ] && [ "$_PURGE_FOR_SEVEN" = "YES" ] ; then
      cd /data/all/$i/o_contrib_seven
      wget -q -U iCab http://ftp.drupal.org/files/projects/purge-7.x-1.6.tar.gz
      wget -q -U iCab http://ftp.drupal.org/files/projects/expire-7.x-1.0-beta1.tar.gz
      ### git clone --branch 7.x-1.x http://git.drupal.org/project/purge.git /data/all/$i/o_contrib_seven/purge &> /dev/null
      ### git clone --branch 7.x-1.x http://git.drupal.org/project/expire.git /data/all/$i/o_contrib_seven/expire &> /dev/null
      ### rm -f -r /data/all/$i/o_contrib_seven/purge/.git
      ### rm -f -r /data/all/$i/o_contrib_seven/expire/.git
Grazyna Jaworska's avatar
Grazyna Jaworska committed
    cd /data/all/$i/o_contrib_seven
    git clone --branch 7.x-1.x git://github.com/omega8cc/boost.git /data/all/$i/o_contrib_seven/boost &> /dev/null
    rm -f -r /data/all/$i/o_contrib_seven/boost/.git
Grazyna Jaworska's avatar
Grazyna Jaworska committed
    wget -q -U iCab http://ftp.drupal.org/files/projects/filefield_nginx_progress-7.x-2.3.tar.gz
    for archive in ./*.tar.gz; do
      tar -xzf "$archive" &> /dev/null
    done
    rm -f *.tar.gz
    if [ -d "/data/all/$i/o_contrib_seven/redis" ] ; then
      rm -f -r /data/all/$i/o_contrib_seven/redis
    fi
    if [ -e "/data/all/000/modules/redis" ] && [ ! -L "/data/all/$i/o_contrib_seven/redis" ] ; then
      ln -s /data/all/000/modules/redis /data/all/$i/o_contrib_seven/redis
    fi
    touch /data/all/$i/o_contrib_seven/update-018.info
Grazyna Jaworska's avatar
Grazyna Jaworska committed
    msg "UPGRADE A: New modules in /data/all/$i/o_contrib_seven: filefield_nginx_progress purge expire"
#
# Sub Force advanced Nginx configuration.
sub_force_advanced_nginx_config () {
  if [ -d "$_THIS_NGX_PATH" ] ; then
    if [ "$_PHP_FPM_VERSION" = "5.3" ] && [ -e "/opt/local/etc/php53-fpm.conf" ] ; then
      if [ "$_USE_STOCK" = "NO" ] ; then
        sed -i "s/127.0.0.1:9000/127.0.0.1:9090/g" $_THIS_NGX_PATH/nginx_octopus_include.conf  &> /dev/null
      else
        sed -i "s/127.0.0.1:9000/127.0.0.1:9090/g" $_THIS_NGX_PATH/nginx_advanced_include.conf &> /dev/null
      fi
    fi
  fi
}
#
# Force advanced Nginx configuration.
force_advanced_nginx_config () {
  validate_local_ip &> /dev/null
  _THIS_NGX_PATH=$_ROOT/.drush/provision/http/Provision/Service/http
  sub_force_advanced_nginx_config
  _THIS_NGX_PATH=$_ROOT/config/includes
  sub_force_advanced_nginx_config
  if [ -e "$_ROOT/config/includes" ] && [ "$_USE_STOCK" = "NO" ] ; then
    if [ ! -L "$_ROOT/config/includes/nginx_advanced_include.conf" ] ; then
      rm -f $_ROOT/config/includes/nginx_advanced_include.conf
      ln -s $_ROOT/config/includes/nginx_octopus_include.conf $_ROOT/config/includes/nginx_advanced_include.conf
    if [ ! -L "$_ROOT/config/includes/nginx_simple_include.conf" ] ; then
      rm -f $_ROOT/config/includes/nginx_simple_include.conf
      ln -s $_ROOT/config/includes/nginx_legacy_include.conf $_ROOT/config/includes/nginx_simple_include.conf
#
# download_textile
download_textile () {
  cd textile
  svn export http://textpattern.googlecode.com/svn/development/4.x/textpattern/lib/classTextile.php &> /dev/null
  cp -af classTextile.php include/ &> /dev/null
Grazyna Jaworska's avatar
Grazyna Jaworska committed
  patch -p1 < /opt/tmp/$_BOA_REPO_NAME/aegir/patches/textile.patch &> /dev/null
}
#
# download_o_contrib_seven
download_o_contrib_seven () {
  #msg "$_STATUS A: Downloading o_contrib_seven modules, please wait..."
  wget -q -U iCab http://ftp.drupal.org/files/projects/admin-7.x-2.0-beta3.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/backup_migrate-7.x-2.5.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/blockcache_alter-7.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/cdn-7.x-2.6.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/config_perms-7.x-2.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/core_library-7.x-1.0-beta12.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/css_emimage-7.x-1.2.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/entitycache-7.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/esi-7.x-3.0-alpha1.tar.gz
Grazyna Jaworska's avatar
Grazyna Jaworska committed
  wget -q -U iCab http://ftp.drupal.org/files/projects/filefield_nginx_progress-7.x-2.3.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/flood_control-7.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/fpa-7.x-2.2.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/login_security-7.x-1.2.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/nocurrent_pass-7.x-1.0.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/readonlymode-7.x-1.1.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/reroute_email-7.x-1.1.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/robotstxt-7.x-1.1.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/site_verify-7.x-1.0.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/speedy-7.x-1.6.tar.gz
Grazyna Jaworska's avatar
Grazyna Jaworska committed
  wget -q -U iCab http://ftp.drupal.org/files/projects/taxonomy_edge-7.x-1.8.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/textile-7.x-2.0-rc11.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/variable_clean-7.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/vars-7.x-2.0-alpha10.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/views_content_cache-7.x-3.x-dev.tar.gz
  if [ "$_PURGE_MODE" = "ON" ] && [ "$_PURGE_FOR_SEVEN" = "YES" ] ; then
    rm -f -r expire*
    git clone --branch 7.x-1.x http://git.drupal.org/project/expire.git &> /dev/null
    rm -f -r expire/.git
    rm -f -r purge*
    wget -q -U iCab http://ftp.drupal.org/files/projects/purge-7.x-1.6.tar.gz
    ### git clone --branch 7.x-1.x http://git.drupal.org/project/purge.git &> /dev/null
    ### rm -f -r purge/.git
  else
    rm -f -r nginx_accel_redirect*
    rm -f -r purge*
    rm -f -r expire*
  fi
  git clone --branch 7.x-1.x git://github.com/omega8cc/boost.git &> /dev/null
  rm -f -r boost/.git
  for archive in ./*.tar.gz; do
    tar -xzf "$archive" &> /dev/null
  done
  rm -f *.tar.gz
  touch ctrl-$_INSTALLER_VERSION
  if [ ! -L "./redis" ] ; then
    ln -s /data/all/000/modules/redis redis
  fi
  if [ ! -e "/data/all/000/modules/redis/update-018.info" ] ; then
    mkdir -p /data/all/000/modules
    cd /data/all/000/modules
    rm -f -r /data/all/000/modules/redis
    git clone --branch 7.x-2.x-o8 git://github.com/omega8cc/redis.git &> /dev/null
    rm -f -r redis/.git
}
#
# download_o_contrib_six
download_o_contrib_six () {
  #msg "$_STATUS A: Downloading o_contrib modules, please wait..."
  wget -q -U iCab http://files.aegir.cc/dev/css_emimage-6.x-2.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/admin-6.x-2.0.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/backup_migrate-6.x-2.6.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/blockcache_alter-6.x-1.5.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/cdn-6.x-2.6.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/config_perms-6.x-2.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/dbtuner-6.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/esi-6.x-2.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/filefield_nginx_progress-6.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/fpa-6.x-2.4.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/image-6.x-1.2.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/login_security-6.x-1.2.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/private_upload-6.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/readonlymode-6.x-1.2.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/reroute_email-6.x-1.2.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/robotstxt-6.x-1.3.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/securesite-6.x-2.4.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/site_verify-6.x-1.0.tar.gz
Grazyna Jaworska's avatar
Grazyna Jaworska committed
  wget -q -U iCab http://ftp.drupal.org/files/projects/taxonomy_edge-6.x-1.7.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/textile-6.x-2.4.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/variable_clean-6.x-1.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/views_content_cache-6.x-2.x-dev.tar.gz
  wget -q -U iCab http://ftp.drupal.org/files/projects/views404-6.x-1.x-dev.tar.gz
  if [ "$_PURGE_MODE" = "ON" ] ; then
    rm -f -r expire*
    git clone --branch 6.x-1.x http://git.drupal.org/project/expire.git &> /dev/null
    rm -f -r expire/.git
    rm -f -r purge*
    wget -q -U iCab http://ftp.drupal.org/files/projects/purge-6.x-1.6.tar.gz
    ### git clone --branch 6.x-1.x-revert git://github.com/omega8cc/purge.git &> /dev/null
    ### rm -f -r purge/.git
  else
    rm -f -r nginx_accel_redirect*
    rm -f -r purge*
    rm -f -r expire*
  fi
  git clone --branch 6.x-1.x git://github.com/omega8cc/boost.git &> /dev/null
  rm -f -r boost/.git
  for archive in ./*.tar.gz; do
    tar -xzf "$archive" &> /dev/null
  done
  rm -f *.tar.gz
  touch ctrl-$_INSTALLER_VERSION
  if [ ! -L "./redis" ] ; then
    ln -s /data/all/000/modules/redis redis
  fi
  if [ ! -L "./cache_backport" ] ; then
    ln -s /data/all/000/modules/cache_backport cache_backport
  fi
  if [ ! -e "/data/all/000/modules/cache_backport/update-018.info" ] ; then
    mkdir -p /data/all/000/modules
    cd /data/all/000/modules
    rm -f -r /data/all/000/modules/cache_backport
    wget -q -U iCab http://ftp.drupal.org/files/projects/cache_backport-6.x-1.0-rc1.tar.gz
    for archive in ./*.tar.gz; do
      tar -xzf "$archive" &> /dev/null
    done
    rm -f *.tar.gz
    sed -i "s/Cache Backand/D7 Cache Backport for D6/g" cache_backport/cache_backport.info &> /dev/null
    echo update > cache_backport/update-018.info
  if [ ! -e "/data/all/000/modules/redis/update-018.info" ] ; then
    mkdir -p /data/all/000/modules
    cd /data/all/000/modules
    rm -f -r /data/all/000/modules/redis
    git clone --branch 7.x-2.x-o8 git://github.com/omega8cc/redis.git &> /dev/null
    rm -f -r redis/.git
}
#
# upgrade_o_contrib
upgrade_o_contrib () {
if [ -e "$_CORE/o_contrib/ctrl-$_INSTALLER_VERSION" ] && [ -e "$_CORE/o_contrib_seven/ctrl-$_INSTALLER_VERSION" ] ; then
  _O_CONTRIB_UP=NO
fi
if [ -e "/data/all/$_LAST_ALL/o_contrib/ctrl-$_INSTALLER_VERSION" ] && [ -e "/data/all/$_LAST_ALL/o_contrib_seven/ctrl-$_INSTALLER_VERSION" ] ; then
  _O_CONTRIB_UP=NO
fi
if [ -d "$_CORE/o_contrib" ] ; then
  if [ ! -e "$_CORE/o_contrib/textile/include/classTextile.php" ] ; then
    _O_CONTRIB_UP=YES
  fi
fi
if [ -d "$_CORE/o_contrib_seven" ] ; then
  if [ ! -e "$_CORE/o_contrib_seven/textile/include/classTextile.php" ] ; then
    _O_CONTRIB_UP=YES
  fi
fi
if [ -d "/data/all/$_LAST_ALL/o_contrib" ] ; then
  if [ ! -e "/data/all/$_LAST_ALL/o_contrib/textile/include/classTextile.php" ] ; then
    _O_CONTRIB_UP=YES
  fi
fi
if [ -d "/data/all/$_LAST_ALL/o_contrib_seven" ] ; then
  if [ ! -e "/data/all/$_LAST_ALL/o_contrib_seven/textile/include/classTextile.php" ] ; then
    _O_CONTRIB_UP=YES
  fi
fi
if [ ! -e "$_THIS_CTRL" ] ; then
  _O_CONTRIB_UP=YES
fi
if [ ! -e "/data/all/000/modules/redis/update-018.info" ] ; then
if [ "$_PURGE_MODE" = "ON" ] ; then
  _TEST_MODULE=purge
else
  _TEST_MODULE=textile
fi
if [ -d "/data/all/$_LAST_ALL/o_contrib" ] ; then
 if [ ! -d "/data/all/$_LAST_ALL/o_contrib/$_TEST_MODULE" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
  #msg "$_STATUS A: Running o_contrib upgrade #1, please wait..."
  cd /data/all/$_LAST_ALL/o_contrib
  rm -f -r *
  download_o_contrib_six
  cd /data/all/$_LAST_ALL/o_contrib
 fi
fi
if [ -d "$_CORE/o_contrib" ] ; then
 if [ ! -d "$_CORE/o_contrib/$_TEST_MODULE" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
  #msg "$_STATUS A: Running o_contrib upgrade #2, please wait..."
  cd $_CORE/o_contrib
  rm -f -r *
  download_o_contrib_six
  cd $_CORE/o_contrib
 fi
fi
if [ -d "/data/all/$_LAST_ALL/o_contrib_seven" ] ; then
 if [ ! -d "/data/all/$_LAST_ALL/o_contrib_seven/robotstxt" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
  #msg "$_STATUS A: Running o_contrib_seven upgrade #1, please wait..."
  cd /data/all/$_LAST_ALL/o_contrib_seven
  rm -f -r *
  download_o_contrib_seven
  cd /data/all/$_LAST_ALL/o_contrib_seven
 fi
fi
if [ -d "$_CORE/o_contrib_seven" ] ; then
 if [ ! -d "$_CORE/o_contrib_seven/robotstxt" ] || [ "$_O_CONTRIB_UP" = "YES" ] ; then
  #msg "$_STATUS A: Running o_contrib_seven upgrade #2, please wait..."
  cd $_CORE/o_contrib_seven
  rm -f -r *
  download_o_contrib_seven
  cd $_CORE/o_contrib_seven
 fi
fi
}
#
# manage_o_contrib
manage_o_contrib () {
  if [ ! -e "$_CORE/o_contrib_seven" ] ; then
    mkdir -p $_CORE/o_contrib_seven
    cd $_CORE/o_contrib_seven
    download_o_contrib_seven
    cd $_CORE/o_contrib_seven
  fi
  if [ ! -e "$_CORE/o_contrib" ] ; then
    mkdir -p $_CORE/o_contrib
    cd $_CORE/o_contrib
    download_o_contrib_six
    cd $_CORE/o_contrib
  fi
  if [ $_STATUS != "INIT" ] ; then
    msg "$_STATUS A: Running o_contrib modules check and upgrade, please wait..."
    upgrade_o_contrib
  fi
  if [ ! -e "/data/all/000/translations/drupal-$_SMALLCORE_6_LANG.pl.po" ] ; then
    if [ ! -d "/data/all/000/translations" ] ; then
      mkdir -p /data/all/000/translations
    else
      rm -f /data/all/000/translations/* &> /dev/null
    fi
    cd /data/all/000/translations
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.zh-hant.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.zh-hans.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.ca.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.da.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.nl.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.fr.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.de.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.hu.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.ja.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.nb.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.pl.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.pt-pt.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.pt-br.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.es.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.sv.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.el.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.et.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.it.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.uk.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.sk.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.fi.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.tr.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.cs.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.lt.po
    wget -q -U iCab http://ftp.drupal.org/files/translations/6.x/drupal/drupal-$_SMALLCORE_6_LANG.ru.po
  fi
}
msg "$_STATUS A: Aegir automated install script part A"
msg "INFO A: Checking OCTOPUS version, please wait..."
if [ "$_AEGIR_VERSION" = "HEAD" ] ; then
  _FILE_VERSION=release.txt
else
  _FILE_VERSION=version.txt
fi
if [ -e "/opt/tmp/$_BOA_REPO_NAME/aegir/conf/$_FILE_VERSION" ] ; then
  _VERSIONS_TEST=`cat /opt/tmp/$_BOA_REPO_NAME/aegir/conf/$_FILE_VERSION`
  if [[ "$_VERSIONS_TEST" =~ "-dev" ]] ; then
    if [[ "$_VERSIONS_TEST" =~ "$_INSTALLER_VERSION" ]] && [ "$_AEGIR_VERSION" = "HEAD" ] ; then
      msg "INFO A: Version test result: OK"
    if [[ "$_VERSIONS_TEST" =~ "$_INSTALLER_VERSION" ]] && [[ "$_AEGIR_VERSION" =~ "BOA" ]] ; then
      _VERSIONS_TEST_RESULT=OK
      msg "INFO: Version test result: OK"
    else
      _VERSIONS_TEST_RESULT=FAIL
    fi
  fi
  if [ "$_VERSIONS_TEST_RESULT" = "FAIL" ] ; then
    msg "ERROR: This OCTOPUS version is outdated and will not work correctly"
    msg "Please download and use new stable version:"
    msg "wget -q -U iCab http://files.aegir.cc/versions/OCTOPUS.sh.txt"
    msg "You can also use (for testing) latest dev version:"
    msg "wget -q -U iCab http://drupalcode.org/project/barracuda.git/blob_plain/HEAD:/OCTOPUS.sh.txt"
###---### Checking status..
#
if [ -d "$_ROOT" ] ; then
  _STATUS=UPGRADE
  cd $_ROOT
  msg "$_STATUS A: $_STATUS"
  rm -f $_ROOT/AegirSetupC.sh.txt
  rm -f $_ROOT/AegirSetupB.sh.txt
else
  msg "$_STATUS A: $_STATUS"
###---### Hot Sauce check..
#
if [ "$_HOT_SAUCE" = "NO" ] ; then
  _CORE="/data/all/$_LAST_ALL"
  _THIS_CORE="$_LAST_ALL"
  if [ "$_USE_CURRENT" = "YES" ] && [ -e "/data/all/000/translations/drupal-$_SMALLCORE_6_LANG.pl.po" ] ; then
    msg "$_STATUS A: Shared platforms code v.$_LAST_ALL (latest available) will be used for this install"
  elif [ "$_USE_CURRENT" = "NO" ] || [ ! -e "/data/all/000/translations/drupal-$_SMALLCORE_6_LANG.pl.po" ] ; then
    _CORE="/data/all/$_ALL_DISTRO"
    _THIS_CORE="$_ALL_DISTRO"
    msg "$_STATUS A: Shared platforms code v.$_ALL_DISTRO (hot new) will be created"
    sed -i "s/^_USE_CURRENT=.*/_USE_CURRENT=NO/g" /opt/tmp/$_BOA_REPO_NAME/aegir/scripts/AegirSetupC.sh.txt &> /dev/null
    msg "$_STATUS A: Shared platforms code v.$_LAST_ALL (latest available) will be used for this install"
else
  _CORE="/data/all/$_ALL_DISTRO"
  _THIS_CORE="$_ALL_DISTRO"
  msg "$_STATUS A: Shared platforms code v.$_ALL_DISTRO (hot new) will be created"
_THIS_CTRL="$_CORE/o_contrib/ctrl-$_INSTALLER_VERSION"
###---### Add required users and create directories
#
msg "$_STATUS A: Creating directories with correct permissions, please wait..."
mkdir -p /data/u
mkdir -p /data/disk
mkdir -p /data/conf
Barracuda's avatar
Barracuda committed
chown root:root /data &> /dev/null
chown root:root /data/disk &> /dev/null
if [ ! -d "$_ROOT" ] ; then
  msg "$_STATUS A: Adding user, please wait..."
  adduser --system --home $_ROOT --ingroup $_USRG $_USER &> /dev/null
  adduser $_USER $_WEBG &> /dev/null
chown -R $_USER:$_USRG /opt/tmp &> /dev/null
chown -R $_USER:$_USRG /data/conf &> /dev/null


###---### Prepare scripts
#
chmod 0711 $_ROOT
cd $_ROOT
cp -af /opt/tmp/$_BOA_REPO_NAME/aegir/scripts/AegirSetupB.sh.txt ./
cp -af /opt/tmp/$_BOA_REPO_NAME/aegir/scripts/AegirSetupC.sh.txt ./
Barracuda's avatar
Barracuda committed
chown $_USER:$_USRG $_ROOT/AegirSetupB.sh.txt &> /dev/null
chown $_USER:$_USRG $_ROOT/AegirSetupC.sh.txt &> /dev/null
###---### Run standard pre-install
# Generate provision backend db_passwd.
provision_backend_dbpass_generate () {
  touch $_ROOT/.$_USER.pass.txt
  chmod 0600 $_ROOT/.$_USER.pass.txt
  _ESC_PASS=""
  _LEN_PASS=0
  if [ "$_STRONG_PASSWORDS" = "YES" ] ; then
    _ESC_PASS=$(randpass 32 esc)
    _ESC_PASS=`echo -n $_ESC_PASS | tr -d "\n"`
    _ENC_PASS=$(python -c "import urllib; print urllib.quote('''$_ESC_PASS''')")
    _LEN_PASS=$(echo ${#_ESC_PASS})
  fi
  if [ -z "$_ESC_PASS" ] || [ $_LEN_PASS -lt 19 ] ; then
    _ESC_PASS=`echo -n $_ESC_PASS | tr -d "\n"`
    _ESC_PASS=`sanitize_string "$_ESC_PASS"`
    _ENC_PASS="$_ESC_PASS"
  echo "$_ESC_PASS" > $_ROOT/.$_USER.pass.txt
Barracuda's avatar
Barracuda committed
  chown $_USER:$_USRG $_ROOT/.$_USER.pass.txt &> /dev/null
  _AEGIR_HOST=`uname -n`
  _RESOLVEIP=`echo $(getent ahostsv4 $_AEGIR_HOST) | cut -d: -f2 | awk '{ print $1}' 2> /dev/null`
  if [ -z "$_RESOLVEIP" ] ; then
    msg "$_STATUS A: FATAL ERROR: This server does not have a hostname that resolves to an IP address"
    msg "$_STATUS A: FATAL ERROR: Aborting AegirSetupA installer NOW!"
    touch /opt/tmp/status-AegirSetupA-FAIL
    exit 1
  fi
GRANT ALL PRIVILEGES ON *.* TO '$_USER'@'$_AEGIR_HOST' IDENTIFIED BY '$_ESC_PASS' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO '$_USER'@'$_RESOLVEIP' IDENTIFIED BY '$_ESC_PASS' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO '$_USER'@'localhost' IDENTIFIED BY '$_ESC_PASS' WITH GRANT OPTION;
#
# Sync provision backend db_passwd.
provision_backend_dbpass_sync () {
  msg "$_STATUS A: Syncing provision backend db_passwd, please wait..."
  mrun "sleep 1"
  _L_SYS="$_ROOT/.$_USER.pass.txt"
  mv -f $_L_SYS $_L_SYS-pre-$_INSTALLER_VERSION-$_NOW &> /dev/null
  provision_backend_dbpass_generate
  if [ ! -z "$_ESC_APASS" ] && [ ! -z "$_ENC_APASS" ] ; then
    su -s /bin/bash - $_USER -c "$_DRUSHCMD @hostmaster sqlq \"UPDATE hosting_db_server SET db_passwd='$_ESC_PASS' WHERE db_user='$_USER'\" &> /dev/null"
    mysql -u root -e "UPDATE mysql.user SET Password=PASSWORD('$_ESC_PASS') WHERE User='$_USER';" &> /dev/null
    sed -i "s/mysql:\/\/$_USER:.*/mysql:\/\/$_USER:$_ENC_PASS@localhost',/g" $_ROOT/.drush/server_localhost.alias.drushrc.php &> /dev/null
    sed -i "s/mysql:\/\/$_USER:.*/mysql:\/\/$_USER:$_ENC_PASS@localhost',/g" $_ROOT/.drush/server_master.alias.drushrc.php &> /dev/null
  mysqladmin flush-privileges &> /dev/null
  if [ "$_USE_STOCK" = "YES" ] || [ "$_DRUSH_CC_REQ" = "YES" ] ; then
    $_DRUSHCMD cache-clear drush &> /dev/null
  fi
  if [ -e "$_ROOT/.drush/server_localhost.alias.drushrc.php" ] ; then
    su -s /bin/bash $_USER -c "$_DRUSHCMD @hostmaster hosting-task @server_localhost verify --force &> /dev/null"
  else
    su -s /bin/bash $_USER -c "$_DRUSHCMD @hostmaster hosting-task @server_master verify --force &> /dev/null"
  fi
  msg "$_STATUS A: Running hosting-dispatch (1/3), please wait..."
  $_DRUSHCMD '@hostmaster' hosting-dispatch &> /dev/null
  mrun "sleep 5"
  msg "$_STATUS A: Running hosting-dispatch (2/3), please wait..."
  $_DRUSHCMD '@hostmaster' hosting-dispatch &> /dev/null
  mrun "sleep 5"
  msg "$_STATUS A: Running hosting-dispatch (3/3), please wait..."
  $_DRUSHCMD '@hostmaster' hosting-dispatch &> /dev/null
}
#
# Sync hostmaster frontend db_passwd.
hostmaster_frontend_dbpass_sync () {
  msg "$_STATUS A: Syncing hostmaster frontend db_passwd, please wait..."
  mrun "sleep 1"
  _THIS_HM_SPTH=`cat $_ROOT/.drush/hostmaster.alias.drushrc.php | grep "site_path'" | cut -d: -f2 | awk '{ print $3}' | sed "s/[\,']//g"`
  _THIS_HM_DBUR=`cat $_THIS_HM_SPTH/drushrc.php | grep "options\['db_user'\] = " | cut -d: -f2 | awk '{ print $3}' | sed "s/[\,';]//g"`
  _THIS_HM_DBPD=`cat $_THIS_HM_SPTH/drushrc.php | grep "options\['db_passwd'\] = " | cut -d: -f2 | awk '{ print $3}' | sed "s/[\,';]//g"`
  if [ -e "$_THIS_HM_SPTH" ] && [ ! -z "$_THIS_HM_DBUR" ] && [ ! -z "$_THIS_HM_DBPD" ] ; then
    mysql -u root -e "UPDATE mysql.user SET Password=PASSWORD('$_THIS_HM_DBPD') WHERE User='$_THIS_HM_DBUR';" &> /dev/null
  fi
  mysqladmin flush-privileges &> /dev/null
}
if [ "$_STATUS" = "INIT" ] ; then
  mysqladmin flush-hosts &> /dev/null
  provision_backend_dbpass_generate
  echo "$_USER ALL=NOPASSWD: /etc/init.d/nginx" >> /etc/sudoers
else
  mysqladmin flush-hosts &> /dev/null
  provision_backend_dbpass_sync
###---### Install or upgrade Aegir Satellite Instance [Y/n]
_LOCAL_STATUS="$_STATUS"
if [ -e "/var/run/aegir_upgrade.pid" ] ; then
  _LOCAL_STATUS=INIT
fi
if [ "$_LOCAL_STATUS" = "INIT" ] ; then
  msg "$_STATUS A: Switching user and running AegirSetupB, please wait..."
  rm -f /opt/tmp/testecho*
  chown root:$_USRG /data/u &> /dev/null
  chmod 0771 /data/u &> /dev/null
  su -s /bin/bash - $_USER -c "/bin/bash AegirSetupB.sh.txt"
  if [ -e "/opt/tmp/status-AegirSetupB-FAIL" ] ; then
    msg "$_STATUS A: FATAL ERROR: AegirSetupB installer failed"
    msg "$_STATUS A: FATAL ERROR: Aborting AegirSetupA installer NOW!"
    touch /opt/tmp/status-AegirSetupA-FAIL
    exit 1
  fi
  chmod 0700 /data/u &> /dev/null
  chown root:root /data/u &> /dev/null
  msg "$_STATUS A: Aegir Satellite Instance installation completed"
  if prompt_yes_no "Do you want to upgrade this Aegir Satellite Instance?" ; then
    if [ "$_PLATFORMS_ONLY" = "YES" ] ; then
      msg "$_STATUS A: Aegir Satellite Instance upgrade skipped - platforms only"
      msg "$_STATUS A: Switching user and running AegirSetupB, please wait..."
      mrun "sleep 1"
      rm -f /opt/tmp/testecho*
      service cron stop &> /dev/null
      _THIS_HM_ROOT=`cat $_ROOT/.drush/hostmaster.alias.drushrc.php | grep "root'" | cut -d: -f2 | awk '{ print $3}' | sed "s/[\,']//g"`
      _THIS_HM_SITE=`cat $_ROOT/.drush/hostmaster.alias.drushrc.php | grep "site_path'" | cut -d: -f2 | awk '{ print $3}' | sed "s/[\,']//g"`
      chown -R $_USER:$_USRG $_ROOT/.drush
      chown -R $_USER:$_USRG $_ROOT/backups
      chown -R $_USER:$_USRG $_ROOT/clients
      chown -R $_USER:$_USRG $_ROOT/config
      chown -R $_USER:$_USRG $_ROOT/tools
      chown -R $_USER $_THIS_HM_ROOT
      chown -R $_USER:$_WEBG $_THIS_HM_SITE/files
      chmod -R 2770 $_THIS_HM_SITE/files
      chown root:$_USRG /data/u &> /dev/null
      chmod 0771 /data/u &> /dev/null
      su -s /bin/bash - $_USER -c "/bin/bash AegirSetupB.sh.txt"
      if [ -e "/opt/tmp/status-AegirSetupB-FAIL" ] ; then
        msg "$_STATUS A: FATAL ERROR: AegirSetupB installer failed"
        msg "$_STATUS A: FATAL ERROR: Aborting AegirSetupA installer NOW!"
        touch /opt/tmp/status-AegirSetupA-FAIL
        exit 1
      else
        mkdir -p $_ROOT/backups/system/old_hostmaster
        chmod 700 $_ROOT/backups/system/old_hostmaster
        chmod 700 $_ROOT/backups/system
        mv -f $_ROOT/backups/*host8* $_ROOT/backups/system/old_hostmaster/ &> /dev/null
        chmod 600 $_ROOT/backups/system/old_hostmaster/* &> /dev/null