Options:
--devel install drupal/devel and use a settings.local.php file
- --overwrite-profile allow overwriting the current installation profile
+ --overwrite-profile allow overwriting the installation profile of the site
+ with a profile copied from the current working directory
-h, --help display this usage message and exit
EOF
[ -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
echo "Use --overwrite-profile to copy over it." 1>&2
exit 1
else
- cp -a "$INSTALLATION_PROFILE" "${WEB_ROOT}/profiles"
+ if [ -d "$INSTALLATION_PROFILE" ];
+ then
+ cp -a "$INSTALLATION_PROFILE" "${WEB_ROOT}/profiles"
+ else
+ echo "Local installation profile '$INSTALLATION_PROFILE' not found." 1>&2
+ echo "Cannot honour the --overwrite-profile option." 1>&2
+ fi
fi
fi
-pushd "$WEB_ROOT"
+# 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().
+if grep -q "^[[:space:]]*uri:" drush/drush.yml;
+then
+ sed -i -e "s@^\([[:space:]]*\)uri: .*@\1uri: 'http://localhost/${SITE_BASE_PATH}'@g" drush/drush.yml
+else
+ echo "" >> drush/drush.yml
+ echo "options:" >> drush/drush.yml
+ echo " uri: 'http://localhost/${SITE_BASE_PATH}'" >> drush/drush.yml
+fi
+
+pushd "$WEB_ROOT" > /dev/null
-# 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
+# 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" \
[ -d ../config/sync ] && sudo chgrp -R "$WEB_SERVER_GROUP" ../config/sync
-# Enable clean URLs
-sed -i "s@\(# \)\{0,1\}RewriteBase .*\$@RewriteBase ${SITE_BASE_PATH}@" .htaccess
+# Don't force RewriteBase it is not generally needed
+#sed -i "s@RewriteBase /drupal\$@RewriteBase ${SITE_BASE_PATH}@" .htaccess
chmod 755 sites/default
chmod 644 sites/default/settings.php
if [ -d core/.git ];
then
git -C core/ config --local alias.core-diff "diff --src-prefix=a/core/ --dst-prefix=b/core/"
- echo "Added a 'git core-diff' command to the drupal/core repository clone."
- echo "This command helps creating core patches ready for upstream."
+ git -C core/ config --local alias.core-format-patch "format-patch --src-prefix=a/core/ --dst-prefix=b/core/"
+ echo "Added 'git core-diff' and 'git core-format-patch' commands to the drupal/core"
+ echo "repository clone. These commands help creating core patches ready for upstream"
+ echo "in a split-core setup."
fi
-popd
+popd > /dev/null