#!/bin/sh

bblue=`tput setab 4`
bgreen=`tput setab 2`
fwhite=`tput setaf 7`
reset=`tput sgr0`

PANEL_HOST="10.104.4.103"
PANEL_USER="deploy"
PANEL_CONFIG="production.ini"
PANEL_BRANCH="master"
PANEL_PATH="/var/www/html/production"
PRODUCT_COMPOSER="composer"

PDF_HOST="10.104.4.103"
PDF_USER="deploy"
PDF_CONFIG="pdf.ini"
PDF_BRANCH="develop"
PDF_PATH="/var/www/html/develop"
PDF_COMPOSER="composer"

DEVELOP_HOST="10.104.4.103"
DEVELOP_USER="deploy"
DEVELOP_CONFIG="develop.ini"
DEVELOP_BRANCH="internal"
DEVELOP_PATH="/var/www/html/internal"
DEVELOP_COMPOSER="composer"

echo "Select environment: 1 (PANEL) or 2 (PDF) or 3 (develop)"
read ENVIRONMENT

if [ $ENVIRONMENT -eq 1 ];then
  HOST=$PANEL_HOST
  USER=$PANEL_USER
  CONFIG=$PANEL_CONFIG
  BRANCH=$PANEL_BRANCH
  HOSTPATH=$PANEL_PATH
  COMPOSER=$PRODUCT_COMPOSER
fi

if [ $ENVIRONMENT -eq 2 ];then
  HOST=$PDF_HOST
  USER=$PDF_USER
  CONFIG=$PDF_CONFIG
  HOSTPATH=$PDF_PATH
  COMPOSER=$PDF_COMPOSER
  BRANCH=$PDF_BRANCH
fi

if [ $ENVIRONMENT -eq 3 ];then

  HOST=$DEVELOP_HOST
  USER=$DEVELOP_USER
  CONFIG=$DEVELOP_CONFIG
  HOSTPATH=$DEVELOP_PATH
  COMPOSER=$DEVELOP_COMPOSER
  echo "Select brach to deploy (default is develop):"
  read BRANCH
  if [ -z "$BRANCH" ]; then
    BRANCH="develop"
  fi
fi

echo "${bblue}${fwhite}Deploy branch $BRANCH ${reset}"

echo "${bblue}${fwhite}Reading configuration file${reset}"
cat $CONFIG
echo ""
echo "Are you sure? (y or n)"
read CONFIRMATION

if [ $CONFIRMATION = "n" ];then
  exit 0
fi

echo "${bblue}${fwhite}Generate temp files to deploy${reset}"
mkdir tmp/
cd tmp/
git clone -b $BRANCH https://gitlab.com/desmondodev/top-panel-slim.git
cd top-panel-slim

BUILD=`git rev-parse --short HEAD`

echo "${bblue}${fwhite}Composer install${reset}"
$COMPOSER install

cd src/public
mkdir assets
cd assets
ln -s ../../../vendor/components/underscore/
ln -s ../../../vendor/components/jquery/
ln -s ../../../vendor/components/handlebars.js/ handlebars
ln -s ../../../vendor/fortawesome/font-awesome/
ln -s ../../../vendor/twbs/bootstrap/dist bootstrap

cd ../../../

echo "${bblue}${fwhite}Sync files white server${reset}"
rsync --stats -avz --delete --exclude '.git' --exclude 'logs' --exclude 'charts' --exclude 'config.ini' . $USER@$HOST:$HOSTPATH/

echo "${bblue}${fwhite}Upload config.ini${reset}"
cd ../../

cp $CONFIG final.ini
echo "\nbuild = $BUILD\n" >> final.ini

scp final.ini $USER@$HOST:$HOSTPATH/src/configuration/config.ini

echo "${bblue}${fwhite}Clean temp files${reset}"
rm -rf tmp/
rm final.ini

echo "${bgreen}Deploy success${reset}"
