Created
February 5, 2024 10:41
-
-
Save PSF1/b373592bebc7444b76340de6852faf7e to your computer and use it in GitHub Desktop.
DDEV Create Drupal Project
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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