X-Git-Url: https://git.ao2.it/drupal-init-tools.git/blobdiff_plain/9fa18898cc15d8d693b0e00508d391a67d219c84..c998fc0d092e0c5755931f2ddd779e97c72f131a:/libexec/bootstrap.sh diff --git a/libexec/bootstrap.sh b/libexec/bootstrap.sh index 279833a..422fafe 100755 --- a/libexec/bootstrap.sh +++ b/libexec/bootstrap.sh @@ -20,13 +20,14 @@ set -e usage() { cat <&2 ;; @@ -48,6 +52,9 @@ do shift done +[ -f "bootstrap.conf" ] || { echo "Aborting, run this command from the Drupal project directory." 1>&2; exit 1; } + +# shellcheck disable=SC1091 . bootstrap.conf declare -p DB_NAME @@ -70,16 +77,16 @@ declare -p WEB_SERVER_GROUP if [ "x$MYSQL_ROOT_PASSWORD" = "x" ]; then - read -s -p "MySQL root password: " MYSQL_ROOT_PASSWORD + read -r -s -p "MySQL root password: " MYSQL_ROOT_PASSWORD echo fi -SITE_LOCAL_PATH="${PWD}/web" +WEB_ROOT="${PWD}/web" command -v composer &> /dev/null || { echo "Aborting, 'composer' not available." 1>&2; exit 1; } command -v git &> /dev/null || { echo "Aborting, 'git' not available." 1>&2; exit 1; } -[ -d "$SITE_LOCAL_PATH" ] || composer install +[ -d "$WEB_ROOT" ] || composer install DRUSH="${PWD}/vendor/bin/drush" DRUPAL_CONSOLE="${PWD}/vendor/bin/drupal" @@ -90,17 +97,19 @@ DRUPAL_CONSOLE="${PWD}/vendor/bin/drupal" # This 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 | egrep -q "^(minimal|standard)$"; +if ! echo "$INSTALLATION_PROFILE" | grep -q -E "^(minimal|standard)$"; then - if [ -d $SITE_LOCAL_PATH/profiles/$INSTALLATION_PROFILE ]; + if [ -d "${WEB_ROOT}/profiles/${INSTALLATION_PROFILE}" ] && [ "$OVERWRITE_PROFILE" != "true" ]; then - echo "Installation profile '$INSTALLATION_PROFILE' already there." + echo "Installation profile '$INSTALLATION_PROFILE' already there." 1>&2 + echo "Use --overwrite-profile to copy over it." 1>&2 + exit 1 else - cp -a $INSTALLATION_PROFILE $SITE_LOCAL_PATH/profiles + cp -a "$INSTALLATION_PROFILE" "${WEB_ROOT}/profiles" fi fi -pushd "$SITE_LOCAL_PATH" +pushd "$WEB_ROOT" # Update the install_profile if it's already there if grep -q "^\\\$settings\['install_profile'\] =" sites/default/settings.php; @@ -163,13 +172,16 @@ then composer --working-dir=../ require drupal/devel $DRUSH --yes en devel - cp sites/example.settings.local.php sites/default/settings.local.php + if [ ! -e sites/default/settings.local.php ]; + then + cp sites/example.settings.local.php sites/default/settings.local.php - # Disable some overly permissive settings - sed -i -e "s/^\(\$settings\['rebuild_access'\]\).*$/\1 = FALSE;/g" sites/default/settings.local.php - sed -i -e "s/^\(\$settings\['skip_permissions_hardening'\]\).*$/\1 = FALSE;/g" sites/default/settings.local.php + # Disable some overly permissive settings + sed -i -e "s/^\(\$settings\['rebuild_access'\]\).*$/\1 = FALSE;/g" sites/default/settings.local.php + sed -i -e "s/^\(\$settings\['skip_permissions_hardening'\]\).*$/\1 = FALSE;/g" sites/default/settings.local.php - chmod 444 sites/default/settings.local.php + chmod 444 sites/default/settings.local.php + fi if ! grep -q "^include \$app_root . '/' . \$site_path . '/settings.local.php';" sites/default/settings.php; then