#!/usr/bin/env bash
set -e

BASEDIR="$( cd "$(dirname "$0")" > /dev/null 2>&1 ; pwd -P )"
TMP=$(mktemp -d)

# Exit trap that will clean up everything
function finish {
  echo "Cleaning up"
  set +e
  kill $(lsof -t -i:8888)
  rm -rf $TMP
}
trap finish EXIT

cd $BASEDIR

rm -rf $TMP

composer create-project drupal/recommended-project $TMP --no-interaction
cd $TMP

php -r "\$json = json_decode(file_get_contents('composer.json'), TRUE); \$json['repositories'][] = ['type' => 'path', 'url' => '$BASEDIR/../../*/*' ]; file_put_contents('composer.json', json_encode(\$json, JSON_PRETTY_PRINT));"

composer require amazeelabs/silverback-cli drush/drush

./vendor/bin/silverback init
source .envrc
./vendor/bin/silverback setup
./vendor/bin/drush status
./vendor/bin/drush serve &

if curl --output /dev/null --silent --head --fail --retry 5 retry-delay 1 --retry-max-time 10 http://localhost:8888; then
  echo "Setup successful."
else
  echo "Setup failed"
  exit 1
fi
