summaryrefslogtreecommitdiff
path: root/sync_and_run.sh
blob: b716f32e6934a072b83f973e6020f6664c5b415b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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