#!/usr/bin/env bash
# 05_adjust_sshfs_mounts.sh — re-mount lab's DATA paths (skip code paths, which are now local).
#
# After 04_code_to_vps_local.sh, /data/cameron/repos is VPS-local. Don't sshfs-mount it.
# Heavy data paths (libero, video_training, robot, para_mac, 567_project, tri_diary,
# scratch_files) stay as sshfs-to-lab.
#
# For yukon_remote — see 06_direct_mount_puget_yukon.sh (skip lab chain).

set -euo pipefail

LAB="cameronsmith@100.74.71.38"
SSHFS_OPTS="reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,follow_symlinks,cache=yes,kernel_cache,compression=no,uid=1011,gid=1011"

# Data paths that stay on lab (sshfs).
# REMOVED from prior list: /data/cameron/repos (now local)
declare -A LAB_MOUNTS=(
  ["/data/cameron/para/libero"]="/data/cameron/para/libero"
  ["/data/cameron/para/robot"]="/data/cameron/para/robot"
  ["/data/cameron/para/video_training"]="/data/cameron/para/video_training"
  ["/data/cameron/para/para_mac"]="/data/cameron/para/para_mac"
  ["/data/cameron/567_augmentation_viewpoint_project"]="/data/cameron/567_augmentation_viewpoint_project"
  ["/data/cameron/tri_diary"]="/data/cameron/tri_diary"
  ["/data/cameron/scratch_files"]="/data/cameron/scratch_files"
)

for mp in "${!LAB_MOUNTS[@]}"; do
  src="${LAB_MOUNTS[$mp]}"
  mkdir -p "$mp"
  if mountpoint -q "$mp"; then
    echo "[skip] $mp already mounted"
    continue
  fi
  echo "[mount] ${LAB}:${src} -> $mp"
  sshfs "${LAB}:${src}" "$mp" -o "$SSHFS_OPTS" || echo "  WARN: mount failed"
done

echo
echo "==> Health probe (each should exit 0):"
for mp in "${!LAB_MOUNTS[@]}"; do
  timeout 3 stat -c '%i' "$mp" > /dev/null 2>&1 && echo "  OK    $mp" || echo "  HUNG  $mp"
done
