Commit 80e87f3d974ee47776d546ebeb3cea85050a96a2

Authored by Sergio Oliveira
1 parent 84381809

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