#!/bin/bash
# version 2.0 - 2014.11.2

echo Starting installation procedure..

#echo --- Update Repositories ---
#sudo add-apt-repository -y ppa:ondrej/php5-oldstable > /dev/null
#sudo add-apt-repository --remove ppa:ondrej/php5-oldstable > /dev/null
sudo apt-get update > /dev/null

echo --- Install NTP ---
sudo apt-get install -y ntp ntpdate
sudo service ntp stop
sudo ntpdate 3.ubuntu.pool.ntp.org
sudo service ntp start

echo --- Install Apache2 ---
sudo apt-get install -y apache2
sudo a2enmod rewrite
sudo service apache2 restart

echo --- Install PHP5.4 ---
sudo apt-get install -y php5
sudo apt-get install -y libapache2-mod-php5
sudo service apache2 restart

echo --- Install PHP5 MySQL Drivers ---
sudo apt-get install -y php5-mysql

echo --- Install PHP5 cURL ---
sudo apt-get install -y php5-curl
sudo service apache2 restart

echo --- Install International Locale extension ---
sudo apt-get install -y php5-intl
sudo service apache2 restart

echo - Install PHP5 MCrypt -
# Reference: http://php.net/manual/en/mcrypt.installation.php#114609
sudo apt-get install -y php5-mcrypt
sudo mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart

echo --- Prepare /var/www ---
sudo adduser ubuntu www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www

echo --- Disable Default VirtualHosts ---
sudo a2dissite default
sudo a2dissite default-000

echo --- Install VirtualHosts ---
sudo cp virtual_hosts/ports.conf /etc/apache2/ports.conf
sudo chmod 777 -R /etc/apache2/logs

for i in "control.fonmedia.mx" "callcenter.fonmedia.mx" "fonmedia.mx" "static.fonmedia.mx" "www.toditomovilclub.com" "static.toditomovilclub.com" "atencion.fonmedia.mx" "bt.fonmedia.mx"
do
    sudo cp virtual_hosts/${i} /etc/apache2/sites-available/${i}
    sudo cp virtual_hosts/${i} /etc/apache2/sites-available/${i}.conf
    sudo a2ensite ${i}
done

sudo service apache2 restart

echo --- Fix Permissions ---
for i in "control.fonmedia.mx" "callcenter.fonmedia.mx" "static.fonmedia.mx" "www.toditomovilclub.com" "static.toditomovilclub.com" "download.toditomovilclub.com" "atencion.fonmedia.mx"
do
    sudo chmod 777 -R ${i}
done

cd ..
sudo chmod 777 -R www
cd www

for i in "control.fonmedia.mx" "callcenter.fonmedia.mx" "www.toditomovilclub.com" "atencion.fonmedia.mx"
do
    echo "--- Installing Site: ${i} ---"
    cd ${i}
    echo - Downloading Composer -
    curl -sS https://getcomposer.org/installer | php
    php composer.phar config --global discard-changes true
    echo - Installing Symfony -
    php composer.phar install
    echo - Configuring Database -
    php app/console doctrine:schema:update --force
    cd ..
done

echo -e "\e[1m--- Installing Beanstalkd ---\e[0m"
sudo apt-get install -y beanstalkd
#sudo cp beanstalkd.conf /etc/init/beanstalkd.conf
sudo initctl reload-configuration

echo -e "\e[1m--- Installing Beanstalk-console ---\e[0m"
curl -s http://getcomposer.org/installer | php
php composer.phar create-project ptrofimov/beanstalk_console -s dev /var/www/beanstalk-console
mv composer.phar beanstalk-console/composer.phar

echo -e "\e[1m--- Configuring LogRotate ---\e[0m"
if [ -f "/etc/logrotate.bak" ]
then
    # LogRotate backup exists, thus restore before applying changes
	echo "Restoring logrotate.conf"
	sudo cp /etc/logrotate.bak /etc/logrotate.conf
else
    # LogRotate backup does not exist, create a new one
    echo "Backing up logrotate.conf"
    sudo cp /etc/logrotate.conf /etc/logrotate.bak
fi
echo "Applying changes to logrotate"
sudo cat /var/www/logrotate.conf | sudo tee -a /etc/logrotate.conf >/dev/null

echo Done.