bootstrap.sh: support both password and unix_socket access to the database
[drupal-init-tools.git] / libexec / bootstrap.sh
index 8b92f97..e3671c0 100755 (executable)
@@ -75,12 +75,36 @@ declare -p WEB_SERVER_GROUP
 
 [ "x$INSTALLATION_PROFILE" = "x" ] && { echo "INSTALLATION_PROFILE not specified, using the \"standard\" profile!"; INSTALLATION_PROFILE="standard"; }
 
-if [ "x$MYSQL_ROOT_PASSWORD" = "x" ];
+if [ "$MYSQL_PASSWORDLESS_ACCESS" = true ];
 then
-  read -r -s -p "MySQL root password: " MYSQL_ROOT_PASSWORD
-  echo
+  MYSQL_SU_USER="${USER}"
+else
+  # XXX Deprecate MYSQL_ROOT_PASSWORD, it will be removed eventually,
+  # but for now add some backwards compatibility mapping.
+  if [ "x$MYSQL_ROOT_PASSWORD" != "x" ];
+  then
+    echo "WARN: MYSQL_ROOT_PASSWORD is deprecated, use MYSQL_SU_USER and MYSQL_SU_PASSWORD" 1>&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; }
@@ -123,8 +147,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" \