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

## include global bundle test configuration
source $TRAVIS_BUILD_DIR/tests/_etc/bundle_configuration

## setup php
phpenv config-add ./tests/_etc/config/system/php.ini

# Install chrome driver
wget -c -nc --retry-connrefused --tries=0 "https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip" -O chromedriver_linux64.zip
unzip -o -q chromedriver_linux64.zip -d $HOME

## setup mysql
mysql --version
mysql -e "SET GLOBAL innodb_file_format=Barracuda;"
mysql -e "SET GLOBAL innodb_large_prefix=1;"
mysql -e "CREATE DATABASE dachcom_bundle_test CHARSET=utf8mb4;"

## move bundle temporarily and clean dir in order to install pimcore
mkdir -p ../lib/$DACHCOM_BUNDLE_NAME
mv {.[!.],}* ../lib/$DACHCOM_BUNDLE_NAME
rm -rf {.[!.],}*

## clone pimcore
git clone https://github.com/pimcore/skeleton.git $DACHCOM_BUNDLE_HOME
git checkout ${PIMCORE_SKELETON_BRANCH} $DACHCOM_BUNDLE_HOME

## move bundle back into lib/$DACHCOM_BUNDLE_NAME
mv ../lib .

## copy _etc dir to root dir
cp -r ./lib/$DACHCOM_BUNDLE_NAME/tests/_etc/bundle_configuration ./bundle_configuration
cp -r ./lib/$DACHCOM_BUNDLE_NAME/tests/_etc ./_etc
chmod -R +x ./_etc

## create download dir
mkdir ./lib/$DACHCOM_BUNDLE_NAME/tests/_data/downloads

## add config templates
mkdir -p ./var/config
cp ./_etc/config/system/config.yml app/config/config.yml
cp app/config/parameters.example.yml app/config/parameters.yml

for K in "${!DACHCOM_INSTALL_CONFIG_FILES[@]}"
do
    cp $K ${DACHCOM_INSTALL_CONFIG_FILES[$K]};
done

##  install composer dependencies
rm composer.lock

## add autoload-dev paths
sed -i '0,/{/a \    "autoload-dev": { "psr-4": { "DachcomBundle\\Test\\App\\Services\\": "'$DACHCOM_BUNDLE_HOME'/lib/'$DACHCOM_BUNDLE_NAME'/tests/_support/App/Services"  } },\' composer.json

composer config repositories.pimcore-${DACHCOM_BUNDLE_REPO_NAME} '{"type": "path", "url": "./lib/'${DACHCOM_BUNDLE_NAME}'", "options": {"symlink": true}}'

COMPOSER_MEMORY_LIMIT=-1 composer install --no-scripts
COMPOSER_MEMORY_LIMIT=-1 composer require symfony/symfony:$SYMFONY_VERSION phpstan/phpstan:^0.11.1 phpstan/phpstan-symfony:^0.11.0 symplify/easy-coding-standard:^5.4 dachcom-digital/${DACHCOM_BUNDLE_REPO_NAME} @dev

##  clear cache
rm -rf var/cache
