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 | from fabric.api import run, sudo, env | 4 | from fabric.api import run, sudo, env |
3 | from fabric.contrib.files import exists | 5 | from fabric.contrib.files import exists |
4 | -from fabric.context_managers import prefix, cd | ||
5 | from fabric.decorators import with_settings | 6 | from fabric.decorators import with_settings |
7 | +from fabric.context_managers import prefix, cd | ||
6 | 8 | ||
7 | env.user = 'colab' # key depends on env | 9 | env.user = 'colab' # key depends on env |
8 | env.use_shell = False | 10 | env.use_shell = False |
@@ -30,21 +32,56 @@ def environment(name): | @@ -30,21 +32,56 @@ def environment(name): | ||
30 | environment('dev') | 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 | with prefix(SOURCE_VENV): | 37 | with prefix(SOURCE_VENV): |
36 | run('mkvirtualenv colab') | 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 | run('git pull') | 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') |