#!/usr/bin/env bash

#: exec_target = cli

## Initialize/reinstall site
##
## Usage: fin init-site

# Abort if anything fails
set -e

#-------------------------- Settings --------------------------------

# PROJECT_ROOT and DOCROOT are set as env variables in cli
SITE_DIRECTORY="default"
DOCROOT_PATH="${PROJECT_ROOT}/${DOCROOT}"
SITEDIR_PATH="${DOCROOT_PATH}/sites/${SITE_DIRECTORY}"

#-------------------------- END: Settings --------------------------------

#-------------------------- Helper functions --------------------------------

# Fix file/folder permissions
fix_permissions ()
{
	echo "Making site directory writable..."
	chmod 755 "${SITEDIR_PATH}"
}

# Install site
site_install ()
{
	cd $DOCROOT_PATH

    if [ -f  ${SITEDIR_PATH}/settings.php ]; then
        rm -rf ${SITEDIR_PATH}/settings.php
    fi

    if [ -f  ${SITEDIR_PATH}/settings.local.php ]; then
        rm -rf ${SITEDIR_PATH}/settings.local.php
    fi

    #cp ${PROJECT_ROOT}/.docksal/etc/config/* ${SITEDIR_PATH}/
    cp ${SITEDIR_PATH}/default.settings.php ${SITEDIR_PATH}/settings.php
    # We disable email sending here so site-install does not return an error
    PHP_OPTIONS="-d sendmail_path=`which true`" drush site-install camp -y --site-name='Camp Site' --db-url="mysql://user:user@db/default?sslmode=disable"
}

# Composer Install
composer_install ()
{
  cd $PROJECT_ROOT
  echo 'export PATH="$PATH:/home/docker/.composer/vendor/bin"' >> ~/.bashrc
  source ~/.bashrc
  sudo rm -rf `which drush`
  composer global require hirak/prestissimo:^0.3
  composer global require consolidation/cgr
  cgr drupal/drupal
  cgr require drush/drush
  composer install --ansi
}

#-------------------------- END: Functions --------------------------------

#-------------------------- Execution --------------------------------

# Project initialization steps
composer_install
fix_permissions
time site_install

#-------------------------- END: Execution --------------------------------
