#!/bin/bash # # Basic files templater module. # # Parameters SHARE="$1" # Include basic functions source $SHARE/templater/functions || exit 1 # drupal-composer implementation function templater_drupal_composer { if [ ! -e 'web/sites/default/settings.local.php' ]; then templater_echo "Setting up Drupal with composer..." # Check for existing composer.json if [ -e "composer.json" ]; then templater_echo "Cannot proceeed, composer.json already present" return 1 fi # Check for composer if ! which composer &> /dev/null; then templater_echo "error: please install composer first" return 1 fi # Setup project using composer # See https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies # https://www.drupal.org/docs/develop/using-composer/using-composer-with-drupal #composer create-project drupal/recommended-project . composer create-project drupal-composer/drupal-project:8.x-dev . --no-interaction if [ ! -e "web/sites/default/services.dev.yml" ]; then cp $SHARE/drupal-composer/files/services.dev.yml web/sites/default/services.dev.yml fi if [ ! -e "web/sites/default/settings.custom.php" ]; then cp $SHARE/drupal-composer/files/settings.custom.php web/sites/default/settings.custom.php fi if [ ! -e "web/sites/default/settings.local.php" ]; then cp $SHARE/drupal-composer/files/settings.local.php web/sites/default/settings.local.php if [ -d ".git" ]; then git ignore web/sites/default/settings.local.php else echo "web/sites/default/settings.local.php" >> .gitignore fi fi # Ensure both settings.custom.php and settings.local.php are loaded cat $SHARE/drupal-composer/files/settings.loader.snippet >> web/sites/default/settings.php templater_install_makefile $SHARE/drupal-composer/files/Makefile.drupal-composer if [ ! -e "README.drupal-composer.md" ]; then cp $SHARE/drupal-composer/files/README.drupal-composer.md . fi if [ -d "puppet" ] && [ ! -e "puppet/Puppetfile" ]; then cp $SHARE/drupal-composer/files/puppet/Puppetfile puppet/ else cp $SHARE/drupal-composer/files/puppet/Puppetfile puppet/Puppetfile.drupal-composer fi # Use pushtodeploy instead #if [ ! -e "bin/post-receive" ]; then # mkdir -p bin && cp $SHARE/drupal-composer/files/bin/post-receive bin/ #fi templater_echo "Please use pushtodeploy module for automated deployments" mkdir -p web/sites/default/config/sync web/libraries vendor touch web/sites/default/{files,config/sync}/.empty git add -f web/sites/default/{files,config/sync}/.empty else templater_echo "Drupal already set" fi } # Dispatch templater_drupal_composer