#!/bin/bash

set -o pipefail

LOCK_FILE="/tmp/build.lock"
DEPLOY_LOG="/var/log/connectorclub/app-deploy.log"
sudo mkdir -p /var/log/connectorclub
exec > >(sudo tee -a "$DEPLOY_LOG") 2>&1

echo "===== [$(date -u '+%Y-%m-%dT%H:%M:%SZ')] AfterInstall START (PID $$) ====="

# Add Node.js, npm, and PM2 to PATH
export PATH=$PATH:/home/ubuntu/.nvm/versions/node/v22.21.1/bin

WEBSITE_PATH="/var/www/html/app_connector_cc"
cd "$WEBSITE_PATH"

# Install and build with lower priority
#npm install
echo "[$(date -u '+%H:%M:%S')] STEP: npm install"
nice -n 10 npm install || { echo "[$(date -u '+%H:%M:%S')] FAILED: npm install"; exit 1; }



#npm audit fix --force
echo "[$(date -u '+%H:%M:%S')] STEP: npm run build:production"
source /etc/profile.d/node-build-heap.sh 2>/dev/null || true
echo "[$(date -u '+%H:%M:%S')] Using NODE_OPTIONS=$NODE_OPTIONS"
npm run build:production || { echo "[$(date -u '+%H:%M:%S')] FAILED: build"; exit 1; }

echo "[$(date -u '+%H:%M:%S')] STEP: pm2 stop/delete"
# Restart frontend app
pm2 stop all || true
pm2 delete all || true

echo "[$(date -u '+%H:%M:%S')] STEP: pm2 start"
pm2 start ecosystem.config.js  || { echo "[$(date -u '+%H:%M:%S')] FAILED: pm2 start"; exit 1; }
#PORT=3007 pm2 start npm --name "app_connector_cc" -- start

echo "[$(date -u '+%H:%M:%S')] STEP: apache reload"
sudo systemctl reload apache2

pm2 save
echo "===== [$(date -u '+%Y-%m-%dT%H:%M:%SZ')] AfterInstall DONE ====="


