#!/bin/bash
set -euo pipefail

cd "$(dirname "$0")/.."
REPO_ROOT="$(pwd)"

export PATH="$HOME/.local/bin:$PATH"
export NVM_DIR="$HOME/.nvm"
# shellcheck source=/dev/null
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

echo "==> Updating source..."
git pull

echo "==> Rebuilding gnexus-ui-kit..."
cd "$HOME/gnexus-ui-kit"
git pull
npm install
npm run build

echo "==> Rebuilding UI..."
cd "$REPO_ROOT/ui"
npm install
npm run build

echo "==> Updating server dependencies..."
cd "$REPO_ROOT/server"
uv pip install -e ".[dev]"

echo "==> Syncing dist to /var/www..."
sudo cp -r "$REPO_ROOT/ui/dist/"* /var/www/gnexus-book/
sudo chown -R www-data:www-data /var/www/gnexus-book

echo "==> Restarting services..."
systemctl --user daemon-reload
systemctl --user restart gnexus-book-backend.service

echo "==> Reloading nginx..."
sudo nginx -t && sudo systemctl reload nginx

echo "==> Deploy complete."
systemctl --user status gnexus-book-backend.service --no-pager
