-
Notifications
You must be signed in to change notification settings - Fork 0
/
fabfile.py
69 lines (53 loc) · 1.98 KB
/
fabfile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding: utf-8 -*-
import os
from fabric.api import *
import config
import david
# Example usage
env.hosts = ['david@david']
APP_ROOT = os.path.dirname(os.path.abspath(__file__)) + '/david'
TRANSLATION_ROOT = APP_ROOT + '/translations'
REMOTE_APP_ROOT = '/srv/user/david/app/tongdawei.cc'
REMOTE_ALEMBIC_CONFIG_FILE = REMOTE_APP_ROOT + '/local_alembic.ini'
def babel():
babel_init()
babel_update()
babel_compile()
def babel_extract():
local('pybabel extract -F david/babel.cfg '
'--msgid-bugs-address "kisdmud@gmail.com" '
'--project david '
'--version %s '
'--copyright-holder "Jesse Yang" '
'-o /tmp/messages.pot %s '
'david/ config/' % (david.__version__, APP_ROOT))
def babel_update():
babel_extract()
local('pybabel update -i /tmp/messages.pot '
'-d %s' % TRANSLATION_ROOT)
def babel_compile():
local('pybabel compile -d %s -f --statistics' % TRANSLATION_ROOT)
def babel_init():
langs = config.BABEL_ACCEPT_LANGUAGE
for l in langs:
if os.path.exists(os.path.join(TRANSLATION_ROOT, l)):
print 'Skip existing translation dir %s' % l
continue
local('pybabel init -i messages.pot -d %s -l %s' % (TRANSLATION_ROOT, l))
def deploy():
with cd(REMOTE_APP_ROOT):
run('source venv/bin/activate && pip install -r requirements.txt')
run('cd ./david/static && npm install && grunt build')
run('source venv/bin/activate && alembic -c %s upgrade head' % REMOTE_ALEMBIC_CONFIG_FILE)
run('make dpyc')
run('sudo supervisorctl -c /etc/supervisor/supervisord.conf restart david')
def fillup():
ret = prompt('Discard existing remote data?', default='Y')
if ret != 'Y':
return
with cd(REMOTE_APP_ROOT):
run('source venv/bin/activate && make fillup')
def bootstrap():
with cd(REMOTE_APP_ROOT):
run('virtualenv --distribute venv')
run('source venv/bin/activate && pip install gunicorn')