#!/usr/bin/env bash

# Define variables
# original
KEY_PATH="./keys/wazirz-prod-key.pem"

# replace with (prefer env var DEPLOY_KEY, else use ~/.ssh)
KEY_PATH="${DEPLOY_KEY:-$HOME/.ssh/wazirz-prod-key-2.pem}"
SSH_OPTS="-o IdentitiesOnly=yes -o StrictHostKeyChecking=no"
USER_HOST="ubuntu@api.wazirz.com"
REMOTE_DIR="/home/ubuntu/wazirz-back"
LOCAL_DIR="."

echo "Building TypeScript with production environment..."
npm run build:prod || { echo "Build failed"; exit 1; }

echo "Creating remote directory..."
ssh $SSH_OPTS -i "$KEY_PATH" "$USER_HOST" "mkdir -p $REMOTE_DIR"

echo "Syncing files..."
rsync -avz --exclude-from='.deployignore' -e "ssh $SSH_OPTS -i $KEY_PATH" "$LOCAL_DIR" "$USER_HOST:$REMOTE_DIR"

echo "Restarting PM2 process with production environment..."
ssh $SSH_OPTS -i "$KEY_PATH" "$USER_HOST" "cd $REMOTE_DIR && pm2 restart wazirz-back || NODE_ENV=prod pm2 start dist/index.js --name wazirz-back --env production"

echo "Deployment completed successfully!"

