Enable overriding ve dir, requirements file.
authorRadek Czajka <rczajka@rczajka.pl>
Mon, 4 Jan 2016 14:47:37 +0000 (15:47 +0100)
committerRadek Czajka <rczajka@rczajka.pl>
Mon, 4 Jan 2016 14:47:37 +0000 (15:47 +0100)
fnpdeploy/__init__.py
setup.py

index f9c6561..9010a5c 100644 (file)
@@ -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
index 71c4a88..1d8ad6c 100755 (executable)
--- 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 = '',