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') | ... | ... |