#!/bin/bash
DEVOPS_DROPBOX_PATH='/C/Users/GGPC/Dropbox/Server_Keys';
DROPBOX_PATH='/C/Users/GGPC/Dropbox/Server_Keys';

KEYS_PATH="$DEVOPS_DROPBOX_PATH/_Jenkins/JenkinsBuildServerA.pem"
JENKINS_USER_NAME='ubuntu'
JENKINS_SERVER_IP='ec2-34-217-118-93.us-west-2.compute.amazonaws.com'
JENKINS_DEST_PATH=/home/ubuntu
RSYNC_DEST=$JENKINS_USER_NAME@$JENKINS_SERVER_IP:$JENKINS_DEST_PATH
SSH_COMMAND="ssh -i $KEYS_PATH -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"

# !!!
# Insert new server fleet name here.
# !!!
SERVER_FLEET_NAME="TestArch5"

# PEM FILE
PEM_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/$SERVER_FLEET_NAME.pem"

# Set permissions so we can copy over files owned by jenkins
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH && sudo chown ubuntu:ubuntu .keys"

$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH && sudo chown ubuntu:ubuntu .keys/$SERVER_FLEET_NAME"
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "mkdir -p $JENKINS_DEST_PATH/.keys/$SERVER_FLEET_NAME"
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH/.keys/$SERVER_FLEET_NAME && sudo chown ubuntu:ubuntu $SERVER_FLEET_NAME.pem"
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH/.keys/$SERVER_FLEET_NAME && sudo chmod 600 $SERVER_FLEET_NAME.pem"

# Copy the PEM file.
scp -i $KEYS_PATH $PEM_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/$SERVER_FLEET_NAME.pem

# Copy the build script
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "mkdir -p $JENKINS_DEST_PATH/.builders"
scp -i $KEYS_PATH "./server_builder.sh" $RSYNC_DEST/.builders/server_builder.sh
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH && sudo chown jenkins:jenkins .builders"

# ACCOUNTS SERVER
FIREBASE_KEY_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/bigscreen-dev-stable-firebase-adminsdk-r5nol-26d3531bbd.json"
FIREBASE_ANALYTICS_KEY_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/dev-stable-analytics-4365a-firebase-adminsdk-wxnu4-43466feb59.json"
ACCOUNTS_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Accounts.env"
ACCOUNTS_ALLOWED_APPS_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"AllowedApps.json"
ACCESS_TOKEN_PRIVATE_KEY="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"AccessToken.key"
ACCESS_TOKEN_PUBLIC_KEY="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"AccessToken.key.pub"
ACCOUNTS_NGINX_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Accounts.nginx.conf"
BRIGHTCOVE_PUBLIC_KEY="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"BrightcoveToken.pem"

scp -i $KEYS_PATH $FIREBASE_KEY_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/Firebase"$SERVER_FLEET_NAME".json
scp -i $KEYS_PATH $FIREBASE_ANALYTICS_KEY_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/Firebase"$SERVER_FLEET_NAME"Analytics.json
scp -i $KEYS_PATH $ACCOUNTS_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Accounts.env
scp -i $KEYS_PATH $ACCOUNTS_ALLOWED_APPS_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"AllowedApps.json
scp -i $KEYS_PATH $ACCESS_TOKEN_PRIVATE_KEY $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"AccessToken.key
scp -i $KEYS_PATH $ACCESS_TOKEN_PUBLIC_KEY $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"AccessToken.key.pub
scp -i $KEYS_PATH $ACCOUNTS_NGINX_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Accounts.nginx.conf
scp -i $KEYS_PATH $BRIGHTCOVE_PUBLIC_KEY $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"BrightcoveToken.pem

# WEBSITE
WEBSITE_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Website.env"
WEBSITE_NGINX_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Website.nginx.conf"
scp -i $KEYS_PATH $WEBSITE_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Website.env
scp -i $KEYS_PATH $WEBSITE_NGINX_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Website.nginx.conf

# MOD PANEL
MOD_PANEL_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"ModPanel.env"
MOD_PANEL_NGINX_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"ModPanel.nginx.conf"
scp -i $KEYS_PATH $MOD_PANEL_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"ModPanel.env
scp -i $KEYS_PATH $MOD_PANEL_NGINX_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"ModPanel.nginx.conf

# CLOUD ENV FILES
CLOUD_APP_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudApp.env"
CLOUD_HTTP_SERVER_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudHTTPServer.env"
CLOUD_HTTP_SERVER_NGINX_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudHTTPServer.nginx.conf"
CLOUD_MEDIA_SERVER_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudMediaServer.env"
CLOUD_WEBSOCKET_SERVER_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudWebSocketServer.env"
CLOUD_WEBSOCKET_SERVER_NGINX_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudWebSocketServer.nginx.conf"
scp -i $KEYS_PATH $CLOUD_APP_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudApp.env
scp -i $KEYS_PATH $CLOUD_HTTP_SERVER_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudHTTPServer.env
scp -i $KEYS_PATH $CLOUD_HTTP_SERVER_NGINX_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudHTTPServer.nginx.conf
scp -i $KEYS_PATH $CLOUD_MEDIA_SERVER_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudMediaServer.env
scp -i $KEYS_PATH $CLOUD_WEBSOCKET_SERVER_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudWebSocketServer.env
scp -i $KEYS_PATH $CLOUD_WEBSOCKET_SERVER_NGINX_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"CloudWebSocketServer.nginx.conf

# Set permissions back so jenkins can work.
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH/.keys/$SERVER_FLEET_NAME && sudo chown jenkins:jenkins $SERVER_FLEET_NAME.pem"
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH/.keys/$SERVER_FLEET_NAME && sudo chmod 400 $SERVER_FLEET_NAME.pem"
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH && sudo chown jenkins:jenkins .keys/$SERVER_FLEET_NAME"
$SSH_COMMAND $JENKINS_USER_NAME@$JENKINS_SERVER_IP "cd $JENKINS_DEST_PATH && sudo chown jenkins:jenkins .keys"