diff --git a/start-app.sh b/start-app.sh index 156743f4..46c8873c 100755 --- a/start-app.sh +++ b/start-app.sh @@ -1,13 +1,28 @@ #!/bin/bash -e -venvdir=~/.virtualenvs/$(basename $(cd $(dirname $0) && pwd -P))-$1-$2 +VENV_DIR=~/.virtualenvs/$(basename $(cd $(dirname $0) && pwd -P))-$1-$2 +LOCK_DIR=./tmp-start -if [ ! -d "${venvdir}" ]; then - virtualenv --no-site-packages "$venvdir" +trap "rm -rf $LOCK_DIR" EXIT INT TERM + +waiting=0 +until mkdir $LOCK_DIR > /dev/null 2>&1; do + if [ $waiting -eq 0 ]; then + echo "waiting for startup lock" + waiting=1 + fi + sleep 1 +done + +if [ ! -d "${VENV_DIR}" ]; then + virtualenv --no-site-packages "$VENV_DIR" fi -source "$venvdir/bin/activate" +source "$VENV_DIR/bin/activate" +echo "Installing dependencies" pip install -r requirements.txt +rmdir $LOCK_DIR + python start.py $1 $2