X-Git-Url: https://git.ao2.it/drupal-init-tools.git/blobdiff_plain/cd466881de54893a6f3997f9485c6725570adc76..753d330f19438d3d675421e1ffb292cfbaa5dc52:/libexec/bootstrap.sh diff --git a/libexec/bootstrap.sh b/libexec/bootstrap.sh index e3671c0..bb1968e 100755 --- a/libexec/bootstrap.sh +++ b/libexec/bootstrap.sh @@ -26,7 +26,8 @@ Bootstrap a Drupal project, using settings from a 'bootstrap.conf' file. 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 @@ -118,8 +119,8 @@ DRUPAL_CONSOLE="${PWD}/vendor/bin/drupal" [ -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 @@ -129,13 +130,31 @@ 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 +# 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" -# 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 @@ -145,18 +164,20 @@ then 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" \ "$INSTALLATION_PROFILE" -if $DRUSH pm-info --fields=status locale | grep -q enabled; +if $DRUSH pm-list --type=module --field=name --status=enabled --pipe | grep -q "^locale$"; then # This is necessary for multi-language sites, it fixes some issues like: # "The Translation source field needs to be installed." @@ -222,8 +243,10 @@ chmod 555 sites/default 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