#!/bin/bash
BUILD_PATH=`pwd`

SERVER_PEM='/home/ubuntu/.keys/DeltaDashboard/DeltaDashboard.pem'

DELTA_USER_NAME='ubuntu'
DELTA_SERVER_IP='ec2-54-184-41-31.us-west-2.compute.amazonaws.com'
DELTA_DEST_PATH="/home/ubuntu/DeltaDashboard$BUILD_NUMBER"
DELTA_KEY_PATH="/home/ubuntu/.keys"
RSYNC_KEY_DEST=$DELTA_USER_NAME@$DELTA_SERVER_IP:$DELTA_KEY_PATH
RSYNC_DEST=$DELTA_USER_NAME@$DELTA_SERVER_IP:$DELTA_DEST_PATH
SSH_COMMAND="ssh -i $SERVER_PEM -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"

$SSH_COMMAND $DELTA_USER_NAME@$DELTA_SERVER_IP "mkdir -p $DELTA_DEST_PATH"
$SSH_COMMAND $DELTA_USER_NAME@$DELTA_SERVER_IP "mkdir -p $DELTA_KEY_PATH"

# Copy config files from local jenkins to server
#
# Note - see Delta/upload_dev_keys_to_jenkins.sh to upload the dev keys to jenkins.
ENV_FILE="/home/ubuntu/.keys/DeltaDashboard/DeltaDashboard.env"
ACCESS_TOKEN_PUBLIC_KEY="/home/ubuntu/.keys/DeltaAccessTokens/DeltaAccessToken.key.pub"

rsync -avz -e "$SSH_COMMAND" --progress $ENV_FILE $RSYNC_DEST/.env
rsync -avz -e "$SSH_COMMAND" --progress $ACCESS_TOKEN_PUBLIC_KEY  $RSYNC_KEY_DEST/DeltaAccessToken.key.pub

rsync -avz -e "$SSH_COMMAND" --progress $BUILD_PATH/src $RSYNC_DEST/
rsync -avz -e "$SSH_COMMAND" --progress $BUILD_PATH/views $RSYNC_DEST/
rsync -avz -e "$SSH_COMMAND" --progress $BUILD_PATH/app.js $RSYNC_DEST/
rsync -avz -e "$SSH_COMMAND" --progress $BUILD_PATH/.babelrc $RSYNC_DEST/
rsync -avz -e "$SSH_COMMAND" --progress $BUILD_PATH/package.json $RSYNC_DEST/
rsync -avz -e "$SSH_COMMAND" --progress $BUILD_PATH/semantic.json $RSYNC_DEST/
rsync -avz -e "$SSH_COMMAND" --progress $BUILD_PATH/public $RSYNC_DEST/

$SSH_COMMAND $DELTA_USER_NAME@$DELTA_SERVER_IP "cd $DELTA_DEST_PATH && npm install"
$SSH_COMMAND $DELTA_USER_NAME@$DELTA_SERVER_IP "cd $DELTA_DEST_PATH && pm2 stop app && pm2 delete app"
$SSH_COMMAND $DELTA_USER_NAME@$DELTA_SERVER_IP "cd $DELTA_DEST_PATH && pm2 link e5fvqnpr8zq7lpm 5suget3t92ds3do DeltaDashboard"
$SSH_COMMAND $DELTA_USER_NAME@$DELTA_SERVER_IP "cd $DELTA_DEST_PATH && pm2 start app.js"
$SSH_COMMAND $DELTA_USER_NAME@$DELTA_SERVER_IP "cd $DELTA_DEST_PATH && pm2 cleardump && pm2 save"