Skip to content
Snippets Groups Projects
provision.sh 1.76 KiB
Newer Older
  • Learn to ignore specific revisions
  • Todd Dembrey's avatar
    Todd Dembrey committed
    #!/bin/bash
    
    PROJECT_NAME=$1
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    PROJECT_DIR=/vagrant
    VIRTUALENV_DIR=/home/vagrant/.virtualenvs/$PROJECT_NAME
    
    PYTHON=$VIRTUALENV_DIR/bin/python
    PIP=$VIRTUALENV_DIR/bin/pip
    
    
    # Upgrade postgres
    
    apt-get update -y
    apt-get remove -y --purge postgresql-*
    
    apt-get install -y postgresql-12 postgresql-client-12 postgresql-contrib-12
    
    su - postgres -c "createuser -s vagrant"
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    # Create database
    
    
    su - vagrant -c "createdb $MODULE_NAME"
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    # Virtualenv setup for project
    su - vagrant -c "virtualenv --python=python3 $VIRTUALENV_DIR"
    
    su - vagrant -c "echo $PROJECT_DIR > $VIRTUALENV_DIR/.project"
    
    
    # Upgrade PIP itself
    su - vagrant -c "$PIP install --upgrade pip"
    
    # Upgrade setuptools (for example html5lib needs 1.8.5+)
    su - vagrant -c "$PIP install --upgrade six setuptools"
    
    # Install PIP requirements
    
    su - vagrant -c "$PIP install -r $PROJECT_DIR/requirements-dev.txt"
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    
    # Set execute permissions on manage.py as they get lost if we build from a zip file
    chmod a+x $PROJECT_DIR/manage.py
    
    
    # su - vagrant -c "$PYTHON $PROJECT_DIR/manage.py migrate --noinput"
    
    
    # Add a couple of aliases to manage.py into .bashrc
    cat << EOF >> /home/vagrant/.bashrc
    export PYTHONPATH=$PROJECT_DIR
    
    export DJANGO_SETTINGS_MODULE=$MODULE_NAME.settings.dev
    
    export PGDATABASE=$MODULE_NAME
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    alias dj="django-admin.py"
    alias djrun="dj runserver 0.0.0.0:8000"
    alias djrunp="dj runserver_plus 0.0.0.0:8000"
    
    source $VIRTUALENV_DIR/bin/activate
    export PS1="[$PROJECT_NAME \W]\\$ "
    cd $PROJECT_DIR
    
    # Install node.js and npm
    
    su - vagrant -c "curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -"
    
    su - vagrant -c "sudo apt-get install -y nodejs"
    
    # Build the static files
    
    su - vagrant -c "sudo npm install -g gulp-cli"
    
    su - vagrant -c "cd $PROJECT_DIR; npm install"
    
    su - vagrant -c "cd $PROJECT_DIR; gulp deploy"