#!/bin/bash

set -e

source ${PHP_CONTAINER_SCRIPTS_PATH}/common.sh

shopt -s dotglob
echo "---> Installing application source..."
mv /tmp/src/* ./

if [ -f composer.json ]; then
  echo "Found 'composer.json', installing dependencies using composer.phar... "

  # Install Composer
  TEMPFILE=$(mktemp)
  RETRIES=6
  for ((i=0; i<$RETRIES; i++)); do

    if [ -z "$COMPOSER_INSTALLER" ]; then
      export COMPOSER_INSTALLER="https://getcomposer.org/installer"
    fi

    echo "Downloading $COMPOSER_INSTALLER, attempt $((i+1))/$RETRIES"
    curl -o $TEMPFILE $COMPOSER_INSTALLER && break
    sleep 10
  done
  if [[ $i == $RETRIES ]]; then
    echo "Download failed, giving up."
    exit 1
  fi
  php <$TEMPFILE

  if [ "$(ls -a /tmp/artifacts/ 2>/dev/null)" ]; then
    echo "Restoring build artifacts"
    mv /tmp/artifacts/* $HOME/
  fi

  # Change the repo mirror if provided
  if [ -n "$COMPOSER_MIRROR" ]; then
    ./composer.phar config -g repositories.packagist composer $COMPOSER_MIRROR
  fi

  # Install App dependencies using Composer
  ./composer.phar install --no-interaction --no-ansi --optimize-autoloader $COMPOSER_ARGS

  if [ ! -f composer.lock ]; then
    echo -e "\nConsider adding a 'composer.lock' file into your source repository.\n"
  fi
fi

# post-assemble files
process_extending_files ./php-post-assemble/ ${PHP_CONTAINER_SCRIPTS_PATH}/post-assemble/

# Fix source directory permissions
fix-permissions ./
fix-permissions ${HTTPD_CONFIGURATION_PATH}
