#!/usr/bin/env bash
# Usage: publish-projects.sh [vps-host] [branch]
# Can be called from any directory — no dependency on the repo being the working dir.
set -euo pipefail

VAULT_PROJECTS='/Users/adrian/Obsidian/Web/adrian-altner-com/content/projects'
VPS="${1:-hetzner}"
REMOTE_BRANCH="${2:-main}"

REMOTE_BASE='/opt/websites/www.adrian-altner.com'
REMOTE_PROJECTS="${REMOTE_BASE}/src/content/projects"

# --- 1. Sync vault to VPS ---
ssh "$VPS" "
  set -euo pipefail
  cd '$REMOTE_BASE'
  git fetch --prune origin '$REMOTE_BRANCH'
  git checkout '$REMOTE_BRANCH'
  git reset --hard 'origin/$REMOTE_BRANCH'
  git clean -fd -e .env -e .env.production
  mkdir -p '$REMOTE_PROJECTS'
"

rsync -az --delete \
  --include='*/' \
  --include='*.md' \
  --include='*.mdx' \
  --include='*.jpg' \
  --include='*.jpeg' \
  --include='*.JPG' \
  --include='*.JPEG' \
  --include='*.png' \
  --include='*.PNG' \
  --include='*.webp' \
  --include='*.gif' \
  --exclude='.DS_Store' \
  --exclude='*' \
  "$VAULT_PROJECTS/" "$VPS:$REMOTE_PROJECTS/"

# --- 2. Build + cleanup ---
ssh "$VPS" "
  set -euo pipefail
  cd '$REMOTE_BASE'
  podman-compose -f compose.yml up --build -d --force-recreate
  podman image prune -af
  podman builder prune -af
"

echo "Projects deploy done via $VPS (branch: $REMOTE_BRANCH)."
