Skip to content

Instantly share code, notes, and snippets.

@PSF1
Created February 5, 2024 10:41
Show Gist options
  • Save PSF1/b373592bebc7444b76340de6852faf7e to your computer and use it in GitHub Desktop.
Save PSF1/b373592bebc7444b76340de6852faf7e to your computer and use it in GitHub Desktop.
DDEV Create Drupal Project
#!/bin/bash
#
# 2024-02-05 - Creado con gpt-4-1106-preview
# Por Pedro Pelaez
#
# Define una función para imprimir mensajes en azul
print_blue() {
echo -e "\033[34m$1\033[0m"
}
# Verifica si se ha proporcionado un nombre de directorio
if [ $# -eq 0 ]; then
print_blue "Por favor, proporciona un nombre de directorio."
exit 1
fi
# Nombre del directorio proporcionado como argumento
DIR_NAME="$1"
# Verifica si el directorio ya existe
if [ -d "$DIR_NAME" ]; then
print_blue "El directorio ya existe. Por favor, elige otro nombre de directorio."
exit 1
else
# Intenta crear el directorio
print_blue "Creando directorio \"$DIR_NAME\"..."
mkdir "$DIR_NAME" || { print_blue "No se pudo crear el directorio. Verifica tus permisos."; exit 1; }
fi
# Entra al directorio
cd "$DIR_NAME" || { print_blue "No se pudo acceder al directorio creado."; exit 1; }
# Configura el proyecto ddev
print_blue "Configurando proyecto ddev..."
if ! ddev config --project-type=drupal10 --docroot=web --create-docroot --webserver-type=apache-fpm; then
print_blue "La configuración de ddev ha fallado."
exit 1
fi
# Inicia el servicio ddev
print_blue "Iniciando el servicio ddev..."
if ! ddev start; then
print_blue "No se ha podido iniciar el servicio ddev."
exit 1
fi
# Crea un proyecto de Drupal utilizando Composer
print_blue "Creando proyecto Drupal con Composer..."
if ! ddev composer create drupal/recommended-project; then
print_blue "No se pudo crear el proyecto Drupal con Composer."
exit 1
fi
print_blue "Cambiando a minimum-stability = dev..."
if ! ddev composer config minimum-stability dev; then
print_blue "No se pudo cambiar a minimum-stability = dev."
exit 1
fi
ddev composer update
# Instala Drush
print_blue "Instalando Drush con Composer..."
if ! ddev composer require drush/drush; then
print_blue "No se pudo instalar Drush a través de Composer."
exit 1
fi
print_blue "Añadiento repositorio Drupal Assets..."
if ! ddev composer config repositories.drupalassets '{"type": "composer", "url": "https://asset-packagist.org"}'; then
print_blue "No se pudo añadir el repositorio Drupal Assets a composer."
exit 1
fi
print_blue "Añadiento tipos de paquetes y area de parches..."
ddev composer config --json extra.installer-types '["npm-asset", "bower-asset"]'
ddev composer config --json extra.installer-paths.web/libraries/\{\$name} '["type:drupal-library", "type:npm-asset", "type:bower-asset"]'
ddev composer config extra.patches '{}'
print_blue "Añadiento paquetes extra..."
ddev composer require drupal/admin_toolbar drupal/bef_select drupal/better_exposed_filters drupal/config_filter drupal/config_ignore drupal/config_split drupal/entity_update drupal/ultimate_cron drupal/uuid_extra oomphinc/composer-installers-extender
ddev composer require --dev drupal/coder drupal/twig_vardumper mglaman/phpstan-drupal phpstan/extension-installer phpstan/phpstan phpstan/phpstan-deprecation-rules squizlabs/php_codesniffer
# Instala el sitio Drupal con Drush
print_blue "Instalando el sitio Drupal con Drush..."
if ! ddev drush site:install --account-name=admin --account-pass=admin -y; then
print_blue "La instalación del sitio Drupal con Drush ha fallado."
exit 1
fi
print_blue "Activando módulos extra..."
ddev drush en admin_toolbar \
admin_toolbar_tools \
admin_toolbar_links_access_filter \
admin_toolbar_search \
bef_select \
better_exposed_filters \
config_filter \
config_ignore \
config_split \
entity_update \
ultimate_cron \
uuid_extra
# Imprime el enlace de inicio de sesión de un solo uso
print_blue "Generando enlace de inicio de sesión de un solo uso..."
if ! ULI_LINK=$(ddev drush uli); then
print_blue "No se pudo generar el enlace de inicio de sesión de un solo uso."
exit 1
fi
print_blue "Utiliza el siguiente enlace de un solo uso para editar los detalles de tu cuenta de administrador:"
echo "$ULI_LINK"
## Lanza el sitio web Drupal en el navegador predeterminado
#print_blue "Abriendo el proyecto Drupal en el navegador predeterminado..."
#if ! ddev launch; then
# print_blue "No se pudo abrir el navegador con el proyecto Drupal."
# exit 1
#fi
# Abre el enlace de inicio de sesión de un solo uso en el navegador predeterminado
print_blue "Abriendo el enlace de inicio de sesión de un solo uso en el navegador..."
xdg-open "$ULI_LINK" || open "$ULI_LINK" || {
print_blue "No se pudo abrir el enlace en el navegador."
exit 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment