#!/bin/bash # Sync local project to dash5 and build/test there. # Usage: ./tools/sync-and-build.sh [test|build|run] set -e REMOTE="dash5" REMOTE_DIR="/opt/wjh/projects/xserv" LOCAL_DIR="$(cd "$(dirname "$0")/.." && pwd)" ACTION="${1:-build}" echo "=== Syncing to $REMOTE:$REMOTE_DIR ===" ssh "$REMOTE" "mkdir -p $REMOTE_DIR" rsync -az --delete \ --exclude target \ --exclude .git \ "$LOCAL_DIR/" "$REMOTE:$REMOTE_DIR/" echo "=== Running: cargo $ACTION ===" ssh "$REMOTE" "source \$HOME/.cargo/env && \ export PATH=/usr/local/cuda/bin:\$PATH && \ export CUDA_HOME=/usr/local/cuda && \ cd $REMOTE_DIR && \ cargo $ACTION --release 2>&1"