#!/bin/bash # Sync code from voidlaptop to meru's jspace container and run commands # Usage: ./sync_and_run.sh [command or "shell"] set -e MACHINE="meru" CONTAINER="jspace-nanogpt" REMOTE_CODE="/mnt/appdata/jspace/code" LOCAL_PROJECT="$HOME/projects/jspace-nanogpt" echo "=== Syncing code to $MACHINE ===" rsync -avz --delete \ --exclude='upstream-nanogpt' \ --exclude='.git' \ --exclude='__pycache__' \ --exclude='*.pyc' \ --exclude='outputs/*' \ --exclude='data/*' \ "${LOCAL_PROJECT}/" \ "${MACHINE}:${REMOTE_CODE}/" if [ "$1" = "shell" ]; then echo "=== Opening shell in container ===" ssh -t "$MACHINE" "docker exec -it $CONTAINER bash" elif [ -n "$1" ]; then echo "=== Running: $@ ===" ssh "$MACHINE" "docker exec $CONTAINER bash -c 'cd /workspace/code && $*'" else echo "=== Synced. No command specified. ===" echo "Usage: $0 shell # interactive bash" echo " $0 'command ...' # run a command" fi