#!/usr/bin/env bash
# Sync recorded datasets from the Mac -> puget (incremental rsync over Tailscale/SSH).
#
#   ./sync_datasets.sh            # sync ALL datasets
#   ./sync_datasets.sh my_task    # sync just one dataset
#
# Only new/changed files move, so re-running after each recording is near-instant.
set -euo pipefail

SRC="$HOME/Projects/robotics_testing/claude_feetech_controller/ar_view/datasets"
PUGET="cameronsmith@100.104.232.94"
DEST="ar_datasets"                       # under puget's home dir

[ -d "$SRC" ] || { echo "no datasets dir at $SRC"; exit 1; }

if [ "${1:-}" ]; then
  [ -d "$SRC/$1" ] || { echo "no dataset '$1' under $SRC"; exit 1; }
  echo "Syncing '$1' -> $PUGET:$DEST/$1 ..."
  ssh "$PUGET" "mkdir -p '$DEST/$1'"
  rsync -av --exclude='.DS_Store' "$SRC/$1/" "$PUGET:$DEST/$1/"
  ssh "$PUGET" "du -sh '$DEST/$1' 2>/dev/null | sed 's/^/  on puget: /'"
else
  echo "Syncing ALL datasets -> $PUGET:$DEST/ ..."
  ssh "$PUGET" "mkdir -p '$DEST'"
  rsync -av --exclude='.DS_Store' "$SRC/" "$PUGET:$DEST/"
  ssh "$PUGET" "du -sh '$DEST'/* 2>/dev/null | sed 's/^/  on puget: /'"
fi
echo "done."
