Commit 80e87f3d974ee47776d546ebeb3cea85050a96a2
1 parent
84381809
Exists in
master
and in
39 other branches
Updating fabric
Tasks to run django with runserver
Showing
1 changed file
with
47 additions
and
10 deletions
Show diff stats
fabfile.py
| 1 | 1 | |
| 2 | + | |
| 3 | +from fabric.operations import put | |
| 2 | 4 | from fabric.api import run, sudo, env |
| 3 | 5 | from fabric.contrib.files import exists |
| 4 | -from fabric.context_managers import prefix, cd | |
| 5 | 6 | from fabric.decorators import with_settings |
| 7 | +from fabric.context_managers import prefix, cd | |
| 6 | 8 | |
| 7 | 9 | env.user = 'colab' # key depends on env |
| 8 | 10 | env.use_shell = False |
| ... | ... | @@ -30,21 +32,56 @@ def environment(name): |
| 30 | 32 | environment('dev') |
| 31 | 33 | |
| 32 | 34 | |
| 33 | -def install(): | |
| 34 | - if not exists('~colab/.virtualenvs/colab'): | |
| 35 | +def mkvirtualenv(): | |
| 36 | + if not exists('~/.virtualenvs/colab'): | |
| 35 | 37 | with prefix(SOURCE_VENV): |
| 36 | 38 | run('mkvirtualenv colab') |
| 39 | + return True | |
| 40 | + | |
| 41 | + | |
| 42 | +def install(local_settings=None): | |
| 43 | + env_created = mkvirtualenv() | |
| 44 | + | |
| 45 | + if not exists('~/colab'): | |
| 46 | + run('git clone https://github.com/TracyWebTech/colab ~/colab') | |
| 47 | + | |
| 48 | + if local_settings: | |
| 49 | + put(local_settings, '~/colab/src/colab/local_settings.py') | |
| 37 | 50 | |
| 38 | - if not exists('~colab/colab'): | |
| 39 | - run('git clone https://github.com/TracyWebTech/colab ~colab/colab') | |
| 51 | + if env_created: | |
| 52 | + update_requirements() | |
| 40 | 53 | |
| 41 | - sudo('supervisorctl reload', shell=False ) | |
| 54 | + sudo('supervisorctl reload', shell=False) | |
| 42 | 55 | |
| 43 | 56 | |
| 44 | -def deploy(): | |
| 45 | - with cd('~colab/colab'): | |
| 57 | +def update_requirements(): | |
| 58 | + with cd('~/colab'), prefix(WORKON_COLAB): | |
| 59 | + run('pip install -r requirements.txt') | |
| 60 | + | |
| 61 | + | |
| 62 | +def deploy(update=False): | |
| 63 | + if update: | |
| 64 | + update_requirements() | |
| 65 | + | |
| 66 | + with cd('~/colab/src/'), prefix(WORKON_COLAB): | |
| 46 | 67 | run('git pull') |
| 68 | + run('python manage.py syncdb') | |
| 69 | + run('python manage.py migrate') | |
| 70 | + run('python manage.py collectstatic --noinput') | |
| 71 | + | |
| 72 | + sudo('supervisorctl restart all') | |
| 73 | + | |
| 74 | + | |
| 75 | +@with_settings(user='vagrant') | |
| 76 | +def runserver(update_requirements=False): | |
| 77 | + env_created = mkvirtualenv() | |
| 78 | + | |
| 79 | + with cd('/vagrant/src/'), prefix(WORKON_COLAB): | |
| 47 | 80 | |
| 48 | - with prefix(WORKON_COLAB): | |
| 49 | - run('pip install -r ~colab/colab/requirements.txt') | |
| 81 | + # If explicitly called or if it's a new environment | |
| 82 | + if update_requirements or env_created: | |
| 83 | + run('pip install -r /vagrant/requirements.txt') | |
| 50 | 84 | |
| 85 | + run('python manage.py syncdb') | |
| 86 | + run('python manage.py migrate') | |
| 87 | + run('python manage.py runserver 0.0.0.0:7000') | ... | ... |