#!/bin/bash
#
# prepare-to-install
#
# Set up a site before running `drush site-install`
#
# Called by pantheon-test and install-drupal.  You must call
# either install-drupal or prepare-to-install prior to calling
# push-to-pantheon.
#
SELF_DIRNAME="`dirname -- "$0"`"
source $SELF_DIRNAME/setup-environment

# Fix bug in our custom installer
if [ -d $DRUPAL_ROOT/sites/sites/default ]
then
  mv $DRUPAL_ROOT/sites/sites/default $DRUPAL_ROOT/sites/default
fi

if [ ! -f $DRUPAL_ROOT/sites/default/default.settings.php ]
then
  echo "No default.settings.php file; did you run composer install?"
  exit 1
fi

# Figure out what URI we want to use.
# Usually, it should be sufficient to just set PORT or
# DEFAULT_PORT.  This must match with what is passed
# to 'start-webserver'.
FALLBACK_URI="http://localhost:${PORT:-${DEFAULT_PORT:-8088}}"
TESTURI="${URI:-${DEFAULT_URI:-$FALLBACK_URI}}"

TESTSITEDIR="${SITEDIR:-${DEFAULT_SITEDIR:-behat}}"

# Prepare settings.php for installation
mkdir -p "$DRUPAL_ROOT/sites/$TESTSITEDIR"
chmod +w "$DRUPAL_ROOT/sites/$TESTSITEDIR"
rm -f "$DRUPAL_ROOT/sites/$TESTSITEDIR/settings.php"
cp "$DRUPAL_ROOT/sites/default/default.settings.php" "$DRUPAL_ROOT/sites/$TESTSITEDIR/settings.php"
chmod +w "$DRUPAL_ROOT/sites/$TESTSITEDIR/settings.php"

# Set up a sites.php to point the Behat Drupal site port at the
# Behat site directory that contains our testing settings.php.
if [ ! -f "$DRUPAL_ROOT/sites/sites.php" ]
then
  echo '<?php' > "$DRUPAL_ROOT/sites/sites.php"
fi
grep -q "'${PORT:-${DEFAULT_PORT:-8088}}.localhost'" "$DRUPAL_ROOT/sites/sites.php"
if [ $? != 0 ]
then
  cat << __EOF__ >> "$DRUPAL_ROOT/sites/sites.php"
\$sites['${PORT:-${DEFAULT_PORT:-8088}}.localhost'] = '$TESTSITEDIR';
\$sites['${PORT:-${DEFAULT_PORT:-8088}}.127.0.0.1'] = '$TESTSITEDIR';
__EOF__
fi

# Get the alias name to use
ALIAS_NAME_ONLY="${ALIAS:-${DEFAULT_ALIAS:-localtest}}"
ALIAS_NAME_ONLY="${ALIAS_NAME_ONLY/@/}"
LOCAL_DRUSH_ALIAS="@$ALIAS_NAME_ONLY"

# Create a local alias '@localtest' pointing at the local
# site to test.
mkdir -p "$HOME/.drush"
cat << __EOF__ > "$HOME/.drush/$ALIAS_NAME_ONLY.alias.drushrc.php"
<?php

\$aliases['$ALIAS_NAME_ONLY'] = array(
  'root' => '$DRUPAL_ROOT',
  'uri' => '$TESTURI',
);
__EOF__

export TESTURI
export TESTSITEDIR
export ALIAS_NAME_ONLY
export LOCAL_DRUSH_ALIAS

# If there is a local script 'pre-install', then run it.
PRE_INSTALL="$PROJECT_BASE_DIR/scripts/pre-install"
if [ -f "$PRE_INSTALL" ]
then
  cd "$DRUPAL_ROOT"
  echo "$PRE_INSTALL" "$LOCAL_DRUSH_ALIAS"
  "$PRE_INSTALL" "$LOCAL_DRUSH_ALIAS"
fi

