diff --git a/start.sh b/start.sh index dfb1602d14554f219bbb37b33b11a71d4b7666e1..bc77721777ab776b1bf1edfb77864d669de6e551 100755 --- a/start.sh +++ b/start.sh @@ -1,9 +1,13 @@ #!/bin/bash -function truncateCurrentDirectory { +function readEnv { if [[ -f ".env" ]]; then export $(cat .env | xargs) > /dev/null 2>&1 fi +} + +function truncateCurrentDirectory { + readEnv rm .* > /dev/null 2>&1 } @@ -21,19 +25,54 @@ function restoreEnvFile { function create { truncateCurrentDirectory - composer create-project ${PROJECT} . --no-interaction + 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 + drush --no-interaction si config_installer + + # Init site config values + if [[ -f "drush/Commands/init_site/init_site.info.yml" ]]; then + if [[ -f ".init_site.json" ]]; then + drush init_site ../.init_site.json + fi + fi + + # Dump database + if [[ -n ${L3D_DUMP_DB} ]]; then + git ignore "/*.sql" + drush sql:dump --result-file ../db.sql + fi + fi + fi + if [[ -n ${L3D_EXIT} ]]; then + exit + fi } -EXISTING=$(ls -1) -if [[ ! -n "$EXISTING" ]]; then +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 Existing git repository" + echo " 3 Custom project template" + echo " 4 Existing git repository" echo "" echo "" @@ -41,6 +80,7 @@ if [[ ! -n "$EXISTING" ]]; then read -p "Choose an option: " OPTION case ${OPTION} in 0 ) + restoreEnvFile break ;; @@ -57,12 +97,16 @@ if [[ ! -n "$EXISTING" ]]; then ;; 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 - truncateCurrentDirectory - git clone ${REPOSITORY} . - composer update - restoreEnvFile + clone break fi ;; @@ -72,9 +116,20 @@ if [[ ! -n "$EXISTING" ]]; then ;; esac done +} + +readEnv +EXISTING=$(ls -1) +if [[ ! -n "$EXISTING" ]]; then + if [[ -n ${PROJECT} ]]; then + create + elif [[ -n ${REPOSITORY} ]]; then + clone + else + initialSetup + fi fi -restoreEnvFile if [[ -x "${L3DSHELL}" ]]; then ${L3DSHELL} else