Skip to content

Instantly share code, notes, and snippets.

@pyetras
Last active August 29, 2015 14:00
Show Gist options
  • Save pyetras/11235504 to your computer and use it in GitHub Desktop.
Save pyetras/11235504 to your computer and use it in GitHub Desktop.
#!/bin/sh
# HOWTO:
# replace ps292408/s292408 with your logins
# put "cd zad2/ && chmod +x run.sh && ./run.sh" in .bashrc on nvidia1/nvidia2
# generate pubkey on nvidia-host and put in on students and vice versa. add server fingerprint etc
# on students:
# # mkdir repo && cd repo && git init --bare
# put this file in hooks/post-receive and chmod +x it
# on your dev station:
# put something meaningful in run.sh
# # git remote add students students:repo/
# # git push students master
COMMIT=`git rev-parse --short HEAD`
export repo=$COMMIT
export codir=$HOME/cos/$repo
mkdir -p $HOME/zad2
read -d '' slurm_program <<EOF
sbcast -f $repo.tgz /home/s292408/$repo.tgz;
srun tar xzf /home/s292408/$repo.tgz;
srun -u bash -i
EOF
# screen -ls | grep Detached | grep -Fv $COMMIT | cut -d. -f1 | awk "{print $1}" | xargs kill
read -d '' program <<EOF
echo $HOME
echo running $COMMIT;
rsync -avz -e ssh ps292408@students:$codir .;
tar czf $repo.tgz $repo;
squeue;
salloc sh -c "$slurm_program"
EOF
mkdir -p $codir
GIT_WORK_TREE=$codir git checkout -f
GIT_WORK_TREE=$HOME/zad2 git checkout -f
echo $COMMIT > $codir/version
echo 'Sshing into nvidia-host'
ssh s292408@nvidia-head "screen -dmS $COMMIT sh -c '$program'"
echo "Remote screen session name is $COMMIT. Have fun!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment