#!/bin/bash function readEnv { if [[ -f ".env" ]]; then 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 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 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 drush site:init /tmp/init_site.json rm /tmp/init_site.json fi fi # Dump database if [[ -n ${L3D_DUMP_DB} ]]; then git ignore "/*.sql" drush sql:dump --result-file ../db.sql fi # Cleanup if [[ -n ${L3D_CLEANUP} ]]; then docker-compose stop docker-compose rm --force fi fi fi if [[ -n ${L3D_EXIT} ]]; then exit fi } function clone { truncateCurrentDirectory git clone ${REPOSITORY} . composer update 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 read -p "Choose an option: " OPTION case ${OPTION} in 0 ) restoreEnvFile break ;; 1 ) PROJECT="lakedrops/d8-project" create break ;; 2 ) PROJECT="drupal-composer/drupal-project:8.x-dev" create break ;; 3 ) read -p "Custom project template: " PROJECT read -p "Repository URL (optional): " REPOSITORY create break ;; 4 ) read -p "Repository URL: " REPOSITORY if [[ -n "${REPOSITORY}" ]]; then clone break fi ;; * ) echo "Please try again." ;; esac done } readEnv EXISTING=$(ls -1) if [[ ! -n "$EXISTING" ]]; then if [[ -n ${PROJECT} ]]; then create elif [[ -n ${REPOSITORY} ]]; then clone else initialSetup fi fi if [[ -x "${L3DSHELL}" ]]; then ${L3DSHELL} else /usr/bin/fish fi