provision.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. # Virtualenv setup for project
  8. su - vagrant -c "virtualenv --python=python3 $VIRTUALENV_DIR"
  9. # Replace previous line with this if you are using Python 2
  10. # su - vagrant -c "virtualenv --python=python2 $VIRTUALENV_DIR"
  11. su - vagrant -c "echo $PROJECT_DIR > $VIRTUALENV_DIR/.project"
  12. # Upgrade PIP
  13. su - vagrant -c "$PIP install --upgrade pip"
  14. # Install PIP requirements
  15. su - vagrant -c "$PIP install -r $PROJECT_DIR/requirements/base.txt"
  16. # Set execute permissions on manage.py as they get lost if we build from a zip file
  17. chmod a+x $PROJECT_DIR/manage.py
  18. # copy local settings file
  19. cp $PROJECT_DIR/bakerydemo/settings/local.py.example $PROJECT_DIR/bakerydemo/settings/local.py
  20. # add .env file for django-dotenv environment variable definitions
  21. echo DJANGO_SETTINGS_MODULE=$PROJECT_NAME.settings.local > $PROJECT_DIR/.env
  22. if [ -n "$USE_POSTGRESQL" ]
  23. then
  24. su - vagrant -c "createdb $PROJECT_NAME"
  25. su - vagrant -c "$PIP install \"psycopg2>=2.7,<3\""
  26. cat << EOF >> $PROJECT_DIR/bakerydemo/settings/local.py
  27. DATABASES = {
  28. 'default': {
  29. 'ENGINE': 'django.db.backends.postgresql_psycopg2',
  30. 'NAME': '$PROJECT_NAME',
  31. }
  32. }
  33. EOF
  34. fi
  35. # Run syncdb/migrate/load_initial_data/update_index
  36. su - vagrant -c "$PYTHON $PROJECT_DIR/manage.py migrate --noinput && \
  37. $PYTHON $PROJECT_DIR/manage.py load_initial_data && \
  38. $PYTHON $PROJECT_DIR/manage.py update_index"
  39. # Add a couple of aliases to manage.py into .bashrc
  40. cat << EOF >> /home/vagrant/.bashrc
  41. export PYTHONPATH=$PROJECT_DIR
  42. alias dj="./manage.py"
  43. alias djrun="dj runserver 0.0.0.0:8000"
  44. source $VIRTUALENV_DIR/bin/activate
  45. export PS1="[$PROJECT_NAME \W]\\$ "
  46. cd $PROJECT_DIR
  47. EOF