#!/bin/bash
DEVOPS_DROPBOX_PATH='/C/Users/David/Dropbox/Server_Keys';
DROPBOX_PATH='/C/Users/David/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="Development"

# 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

# ACCOUNTS SERVER
FIREBASE_KEY_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/dev-accounts-bigscreen-firebase-adminsdk-ix1a6-cbff1c07c0.json"
FIREBASE_ANALYTICS_KEY_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/dev-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

# SIGNAL SERVER
SIGNAL_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Signal.env"
SIGNAL_NGINX_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Signal.nginx.conf"
scp -i $KEYS_PATH $SIGNAL_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Signal.env
scp -i $KEYS_PATH $SIGNAL_NGINX_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Signal.nginx.conf

# DASHBOARD
DASHBOARD_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Dashboard.env"
DASHBOARD_NGINX_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Dashboard.nginx.conf"
scp -i $KEYS_PATH $DASHBOARD_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Dashboard.env
scp -i $KEYS_PATH $DASHBOARD_NGINX_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Dashboard.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"Cloud.env"
MEDIA_SERVER_ENV_FILE="$DROPBOX_PATH/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"MediaServer.env"
scp -i $KEYS_PATH $CLOUD_APP_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"Cloud.env
scp -i $KEYS_PATH $MEDIA_SERVER_ENV_FILE $RSYNC_DEST/.keys/$SERVER_FLEET_NAME/"$SERVER_FLEET_NAME"MediaServer.env

# 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"