X-Git-Url: https://git.mdrn.pl/fnpdeploy.git/blobdiff_plain/e2825f40a65aa4e05a9704e3e710df24c4838662..d0b568e2e2037ec2efde1aa41169d5d7a15280f4:/fnpdeploy/__init__.py?ds=inline diff --git a/fnpdeploy/__init__.py b/fnpdeploy/__init__.py index dc74699..9010a5c 100644 --- a/fnpdeploy/__init__.py +++ b/fnpdeploy/__init__.py @@ -223,22 +223,28 @@ def install_requirements(): print '>>> install requirements' require('release', provided_by=[deploy]) require('app_path') - if not files.exists('%(app_path)s/ve' % env): + set_ve() + if not files.exists(env.ve): + # HERE: maybe venv? require('virtualenv') - run('%(virtualenv)s %(app_path)s/ve' % env, pty=True) + run('%(virtualenv)s %(ve)s' % env, pty=True) with cd('%(app_path)s/releases/%(release)s' % env): - run('%(app_path)s/ve/bin/pip install -r requirements.txt' % env, pty=True) + run('%(ve)s/bin/pip install -r %(reqs)s' % {'ve': env.ve, 'reqs': env.get('requirements_file', 'requirements.txt')}, pty=True) with cd(get_django_root_path(env['release'])): # Install DB requirement database_reqs = { 'django.db.backends.postgresql_psycopg2': 'psycopg2', 'django.db.backends.mysql': 'MySQL-python', } - databases = run('''DJANGO_SETTINGS_MODULE=%(project_name)s.settings %(app_path)s/ve/bin/python -c 'from django.conf import settings; print " ".join(set([d["ENGINE"] for d in settings.DATABASES.values()]))' ''' % env) + databases = run( + 'DJANGO_SETTINGS_MODULE=%(project_name)s.settings ' + '%(ve)s/bin/python -c \'' + 'from django.conf import settings;' + 'print(" ".join(set([d["ENGINE"] for d in settings.DATABASES.values()])))\'' % env) for database in databases.split(): if database in database_reqs: # TODO: set pip default pypi - run('%(app_path)s/ve/bin/pip install ' % env + database_reqs[database]) + run('%(ve)s/bin/pip install ' % env + database_reqs[database]) def copy_localsettings(): @@ -265,10 +271,10 @@ def migrate(): print '>>> migrate' require('app_path', 'project_name') with cd(get_django_root_path('current')): - run('%(app_path)s/ve/bin/python manage.py syncdb --noinput' % env, pty=True) + run('%(ve)s/bin/python manage.py syncdb --noinput' % env, pty=True) for app, migration in env.get('migrate_fake', ()): - run('%s/ve/bin/python manage.py migrate %s --fake %s' % (env.app_path, app, migration), pty=True) - run('%(app_path)s/ve/bin/python manage.py migrate' % env, pty=True) + run('%s/bin/python manage.py migrate %s --fake %s' % (env.ve, app, migration), pty=True) + run('%(ve)s/bin/python manage.py migrate' % env, pty=True) def pre_collectstatic(): print '>>> pre_collectstatic' @@ -283,8 +289,7 @@ def collectstatic(): return require('app_path', 'project_name') with cd(get_django_root_path('current')): - run('%(app_path)s/ve/bin/python manage.py collectstatic --noinput' % env, pty=True) - + run('%(ve)s/bin/python manage.py collectstatic --noinput' % env, pty=True) def get_django_root_path(release): require('app_path') @@ -292,3 +297,7 @@ def get_django_root_path(release): if 'django_root_path' in env: path = join(path, env['django_root_path']) return path + +def set_ve(): + if 've' not in env: + env['ve'] = '%s/ve' % env.app_path