[ -x "$DRUSH" ] || { echo "Aborting, '$DRUSH' not available." 1>&2; exit 1; }
[ -x "$DRUPAL_CONSOLE" ] || { echo "Aborting, '$DRUPAL_CONSOLE' not available." 1>&2; exit 1; }
-# This becomes unnecessary if the installation profile gets pulled in by
-# composer.json, like suggested in
+# The following becomes unnecessary if the installation profile gets pulled in
+# by composer.json, like suggested in
# https://github.com/drupal-composer/drupal-project/issues/249
if ! echo "$INSTALLATION_PROFILE" | grep -q -E "^(minimal|standard)$";
then
pushd "$WEB_ROOT"
-# Update the install_profile if it's already there
+# Update the install_profile setting if it's already there
if grep -q "^\\\$settings\['install_profile'\] =" sites/default/settings.php;
then
chmod 755 sites/default
chmod 555 sites/default
fi
+# Make sure that drush knows what the actual base URI is, this is needed to
+# have a consistent behavior between the cli and the web interface, for
+# example in the case of modules that use base_path().
+chmod 755 sites/default
+if [ ! -e sites/default/drushrc.php ];
+then
+ echo "<?php" > sites/default/drushrc.php
+ echo "" >> sites/default/drushrc.php
+fi
+
+if grep -q "^\\\$options\['uri'\] =" sites/default/drushrc.php;
+then
+ sed -i -e "s@^\(\$options\['uri'\]\) = '[^']*';@\1 = 'http://localhost/${SITE_BASE_PATH}';@g" sites/default/drushrc.php
+else
+ echo "\$options['uri'] = 'http://localhost/${SITE_BASE_PATH}';" >> sites/default/drushrc.php
+fi
+chmod 444 sites/default/drushrc.php
+chmod 555 sites/default
+
+# Install the site
$DRUSH --verbose --yes \
site-install \
"${DRUSH_DB_SU_CREDENTIALS[@]}" \
--db-url="mysql://${DB_USER}:${DB_PASS}@localhost/${DB_NAME}" \
--site-name="$SITE_NAME" \
--site-mail="$SITE_MAIL" \
+ --sites-subdir="default" \
--account-name="$ACCOUNT_NAME" \
--account-pass="$ACCOUNT_PASS" \
--account-mail="$ACCOUNT_MAIL" \