provision.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. PROJECT_NAME=$1
  3. PROJECT_DIR=/vagrant
  4. VIRTUALENV_DIR=/home/vagrant/.virtualenvs/$PROJECT_NAME
  5. PYTHON=$VIRTUALENV_DIR/bin/python
  6. PIP=$VIRTUALENV_DIR/bin/pip
  7. # Create database
  8. su - vagrant -c "createdb $PROJECT_NAME"
  9. # Virtualenv setup for project
  10. su - vagrant -c "virtualenv --python=python3 $VIRTUALENV_DIR"
  11. # Replace previous line with this if you are using Python 2
  12. # su - vagrant -c "virtualenv --python=python2 $VIRTUALENV_DIR"
  13. su - vagrant -c "echo $PROJECT_DIR > $VIRTUALENV_DIR/.project"
  14. # Upgrade PIP
  15. su - vagrant -c "$PIP install --upgrade pip"
  16. # Install PIP requirements
  17. su - vagrant -c "$PIP install -r $PROJECT_DIR/requirements.txt"
  18. # Set execute permissions on manage.py as they get lost if we build from a zip file
  19. chmod a+x $PROJECT_DIR/manage.py
  20. # Run syncdb/migrate/load_initial_data/update_index
  21. su - vagrant -c "$PYTHON $PROJECT_DIR/manage.py migrate --noinput && \
  22. $PYTHON $PROJECT_DIR/manage.py load_initial_data && \
  23. $PYTHON $PROJECT_DIR/manage.py update_index"
  24. # Add a couple of aliases to manage.py into .bashrc
  25. cat << EOF >> /home/vagrant/.bashrc
  26. export PYTHONPATH=$PROJECT_DIR
  27. export DJANGO_SETTINGS_MODULE=$PROJECT_NAME.settings.dev
  28. alias dj="django-admin.py"
  29. alias djrun="dj runserver 0.0.0.0:8000"
  30. source $VIRTUALENV_DIR/bin/activate
  31. export PS1="[$PROJECT_NAME \W]\\$ "
  32. cd $PROJECT_DIR
  33. EOF