From d0b568e2e2037ec2efde1aa41169d5d7a15280f4 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Mon, 4 Jan 2016 15:47:37 +0100 Subject: [PATCH] Enable overriding ve dir, requirements file. --- fnpdeploy/__init__.py | 24 ++++++++++++++---------- setup.py | 2 +- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/fnpdeploy/__init__.py b/fnpdeploy/__init__.py index f9c6561..9010a5c 100644 --- a/fnpdeploy/__init__.py +++ b/fnpdeploy/__init__.py @@ -223,12 +223,13 @@ 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 = { @@ -237,13 +238,13 @@ def install_requirements(): } databases = run( 'DJANGO_SETTINGS_MODULE=%(project_name)s.settings ' - '%(app_path)s/ve/bin/python -c \'' + '%(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(): @@ -270,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' @@ -288,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') @@ -297,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 diff --git a/setup.py b/setup.py index 71c4a88..1d8ad6c 100755 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ else: setup( name='fnpdeploy', - version='0.2.1', + version='0.2.2', author='Radek Czajka', author_email='radekczajka@nowoczesnapolska.org.pl', url = '', -- 2.20.1