#!/bin/bash function l3dComposer { php /usr/local/bin/.l3dComposer.php } function permissions { chmod -R g+w . } function readEnv { if [[ -f ".env" ]]; then # shellcheck disable=SC2046 # shellcheck disable=SC2002 export $(cat .env | xargs) > /dev/null 2>&1 fi } function truncateCurrentDirectory { readEnv rm .* > /dev/null 2>&1 } function restoreEnvFile { if [[ -n ${PHP_VERSION} ]]; then echo "PHP_VERSION=${PHP_VERSION}" >>.env fi if [[ -n ${COMPOSE_PROJECT_NAME} ]]; then echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env fi if [[ -f ".env" ]]; then # shellcheck disable=SC2046 # shellcheck disable=SC2094 # shellcheck disable=SC2002 env -i $(cat .env | xargs) >.env fi } function create { if [[ -f ".init_site.json" ]]; then mv .init_site.json /tmp/init_site.json fi truncateCurrentDirectory if [[ -n ${REPOSITORY} ]]; then composer create-project "${PROJECT}" ./ --no-interaction --repository "${REPOSITORY}" else composer create-project "${PROJECT}" ./ --no-interaction fi l3dComposer permissions restoreEnvFile if [[ -f "docker-compose.yml" ]]; then if [[ -f "web/profiles/contrib/config_installer/config_installer.info.yml" ]]; then # Start container a d4d up sleep 2 drush --no-interaction si config_installer # Init site config values if [[ -f "drush/Commands/dev_modules/dev_modules.info.yml" ]]; then if [[ -f "/tmp/init_site.json" ]]; then mv /tmp/init_site.json web/.init_site.json drush site:init .init_site.json rm web/.init_site.json fi fi # Dump database if [[ $L3D_DUMP_DB -eq 1 ]]; then git ignore "/*.sql" drush sql:dump --result-file ../db.sql fi drush -y cex # shellcheck disable=SC2035 git add * git add .* git commit -am "After site install" # Push to remote git repository if [[ -n ${L3D_GIT_REMOTE} ]]; then git remote add origin "$L3D_GIT_REMOTE" git push -u origin master fi # Cleanup if [[ $L3D_CLEANUP -eq 1 ]]; then docker-compose stop docker-compose rm --force -v fi fi fi if [[ $L3D_EXIT -eq 1 ]]; then exit fi } function clone { truncateCurrentDirectory git clone "${REPOSITORY}" . l3dComposer composer create-project permissions restoreEnvFile } function initialSetup { echo "Lets start a new project here ..." echo "" echo "Options to start:" echo " 0 none: start with an empty container" echo " 1 LakeDrops Drupal 8 project template" echo " 2 Drupal's community project template" echo " 3 Custom project template" echo " 4 Existing git repository" echo "" echo "" while true; do # shellcheck disable=SC2162 read -p "Choose an option: " OPTION case ${OPTION} in 0 ) restoreEnvFile l3dComposer break ;; 1 ) PROJECT="lakedrops/d8-project" create break ;; 2 ) PROJECT="drupal-composer/drupal-project:8.x-dev" create break ;; 3 ) # shellcheck disable=SC2162 read -p "Custom project template: " PROJECT # shellcheck disable=SC2162 read -p "Repository URL (optional): " REPOSITORY create break ;; 4 ) # shellcheck disable=SC2162 read -p "Repository URL: " REPOSITORY if [[ -n "${REPOSITORY}" ]]; then clone break fi ;; * ) echo "Please try again." ;; esac done } readEnv EXISTING=$(ls -1) if [[ -z "$EXISTING" ]]; then if [[ -n ${PROJECT} ]]; then create elif [[ -n ${REPOSITORY} ]]; then clone else initialSetup fi else l3dComposer fi if [[ -d /drupal/.idea ]]; then /usr/local/bin/.configIdea fi if [[ -x "${L3DSHELL}" ]]; then ${L3DSHELL} else /usr/bin/fish fi restoreEnvFile