#!/usr/bin/env bash set -euo pipefail REMOTE_HOST="serve" REMOTE_APP_DIR="/home/serve/services/movie-select" REMOTE_STATIC_DIR="/var/www/virtual/serve/html/movie-select" echo "==> Installing local dependencies..." bun install echo "==> Building client (Vite)..." bun run build echo "==> Stamping service worker version..." sed -i '' "s/__SW_VERSION__/$(date +%s)/" dist/client/sw.js echo "==> Syncing static files to ${REMOTE_HOST}:${REMOTE_STATIC_DIR} ..." rsync -avz --delete \ --exclude='.DS_Store' \ dist/client/ "${REMOTE_HOST}:${REMOTE_STATIC_DIR}/" echo "==> Copying .htaccess for SPA fallback..." scp .htaccess "${REMOTE_HOST}:${REMOTE_STATIC_DIR}/.htaccess" echo "==> Syncing server code to ${REMOTE_HOST}:${REMOTE_APP_DIR} ..." rsync -avz --delete \ --exclude='.DS_Store' \ --exclude='.git/' \ --exclude='.env' \ --exclude='.env.example' \ --exclude='dist/' \ --exclude='tests/' \ --exclude='scripts/' \ --exclude='node_modules/' \ --exclude='.htaccess' \ --exclude='.claude/' \ --exclude='AI_AGENT_REPORT.md' \ --exclude='*.test.ts' \ --exclude='vite.config.ts' \ --exclude='drizzle.config.ts' \ --exclude='biome.json' \ ./ "${REMOTE_HOST}:${REMOTE_APP_DIR}/" echo "==> Installing production dependencies on remote..." ssh "${REMOTE_HOST}" "cd ${REMOTE_APP_DIR} && bun install --production" echo "==> Restarting service..." ssh "${REMOTE_HOST}" "systemctl --user restart movie-select 2>/dev/null || true" echo "Done. Live at https://serve.uber.space/movie-select/"