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.
Options:
- --devel install drupal/devel and use a settings.local.php file
- -h, --help display this usage message and exit
+ --devel install drupal/devel and use a settings.local.php file
+ --overwrite-profile allow overwriting the current installation profile
+ -h, --help display this usage message and exit
EOF
}
--devel)
DEVEL_MODE="true"
;;
+ --overwrite-profile)
+ OVERWRITE_PROFILE="true"
+ ;;
-*)
echo "Error: Unknown option '${1}'" 1>&2
;;
shift
done
+# shellcheck disable=SC1091
. bootstrap.conf
declare -p DB_NAME
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
# 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 "${SITE_LOCAL_PATH}/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" "${SITE_LOCAL_PATH}/profiles"
fi
fi
composer --working-dir=../ require drupal/devel
$DRUSH --yes en devel
- if [ ! -e sites/example.settings.local.php ];
+ if [ ! -e sites/default/settings.local.php ];
then
cp sites/example.settings.local.php sites/default/settings.local.php