Check that the "bootstrap" and "clean" subcommands are run in the project dir
[drupal-init-tools.git] / libexec / bootstrap.sh
index f48e303..422fafe 100755 (executable)
@@ -20,7 +20,7 @@ set -e
 
 usage() {
   cat <<EOF
-usage: drin $(basename $0 .sh) [--devel|-h|--help]
+usage: drin $(basename "$0" .sh) [--devel|-h|--help]
 
 Bootstrap a Drupal project, using settings from a 'bootstrap.conf' file.
 
@@ -52,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
@@ -74,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"
@@ -94,19 +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 -a "$OVERWRITE_PROFILE" != "true" ];
+  if [ -d "${WEB_ROOT}/profiles/${INSTALLATION_PROFILE}" ] && [ "$OVERWRITE_PROFILE" != "true" ];
   then
     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;