X-Git-Url: https://git.ao2.it/drupal-init-tools.git/blobdiff_plain/c998fc0d092e0c5755931f2ddd779e97c72f131a..e7bc3fbe35e1c90cb8dbaf31e3875f99d448f654:/libexec/bootstrap.sh diff --git a/libexec/bootstrap.sh b/libexec/bootstrap.sh index 422fafe..9975299 100755 --- a/libexec/bootstrap.sh +++ b/libexec/bootstrap.sh @@ -20,13 +20,14 @@ set -e usage() { cat <&2 + MYSQL_SU_USER="root" + MYSQL_SU_PASSWORD="$MYSQL_ROOT_PASSWORD" + fi + + if [ "x$MYSQL_SU_USER" = "x" ]; + then + echo "Aborting, for password regulated access specify MYSQL_SU_USER in bootstrap.conf" 1>&2 + exit 1 + fi + + if [ "x$MYSQL_SU_PASSWORD" = "x" ]; + then + read -r -s -p "MySQL password for \"${MYSQL_SU_USER}\": " MYSQL_SU_PASSWORD + echo + fi + + DRUSH_DB_SU_CREDENTIALS=(--db-su-pw'='"${MYSQL_SU_PASSWORD}") fi +DRUSH_DB_SU_CREDENTIALS+=(--db-su'='"${MYSQL_SU_USER}") + WEB_ROOT="${PWD}/web" command -v composer &> /dev/null || { echo "Aborting, 'composer' not available." 1>&2; exit 1; } @@ -94,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 @@ -105,13 +130,19 @@ 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" -# 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 @@ -123,8 +154,7 @@ fi $DRUSH --verbose --yes \ site-install \ - --db-su=root \ - --db-su-pw="$MYSQL_ROOT_PASSWORD" \ + "${DRUSH_DB_SU_CREDENTIALS[@]}" \ --db-url="mysql://${DB_USER}:${DB_PASS}@localhost/${DB_NAME}" \ --site-name="$SITE_NAME" \ --site-mail="$SITE_MAIL" \ @@ -133,7 +163,7 @@ $DRUSH --verbose --yes \ --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." @@ -149,8 +179,8 @@ sudo chgrp -R "$WEB_SERVER_GROUP" sites/default/files [ -d ../config/sync ] && sudo chgrp -R "$WEB_SERVER_GROUP" ../config/sync -# Enables clean URLs -sed -i "s@# RewriteBase /drupal\$@RewriteBase ${SITE_BASE_PATH}@" .htaccess +# Enable clean URLs +sed -i "s@\(# \)\{0,1\}RewriteBase .*\$@RewriteBase ${SITE_BASE_PATH}@" .htaccess chmod 755 sites/default chmod 644 sites/default/settings.php @@ -199,7 +229,7 @@ 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' to the drupal/core repository clone." + echo "Added a 'git core-diff' command to the drupal/core repository clone." echo "This command helps creating core patches ready for upstream." fi