Prepare secondary venv from fab script, not from setup.py.
authorRadek Czajka <radekczajka@nowoczesnapolska.org.pl>
Mon, 29 Sep 2014 12:40:15 +0000 (14:40 +0200)
committerRadek Czajka <radekczajka@nowoczesnapolska.org.pl>
Mon, 29 Sep 2014 12:40:15 +0000 (14:40 +0200)
bin/fab
setup.py

diff --git a/bin/fab b/bin/fab
index 5dc034d..23945ce 100644 (file)
--- a/bin/fab
+++ b/bin/fab
@@ -1,3 +1,19 @@
 #!/bin/sh
 
-exec ${VIRTUAL_ENV}/fnpdeploy_ve/bin/fab "$@"
+if [ "x$VIRTUAL_ENV" = "x" ]; then
+    SUBVE="~/.fnpdeploy_ve"
+else
+    SUBVE="$VIRTUAL_ENV/fnpdeploy_ve"
+fi
+
+if [ ! -e "$SUBVE" ]; then
+    echo "Creating virtualenv at ~/.fnpdeploy_ve"
+    virtualenv --python python2 "$SUBVE"
+    "$SUBVE/bin/pip" -q install -U pip
+fi
+
+if [ ! -e "$SUBVE/bin/fab" ]; then
+    "$SUBVE/bin/pip" -q install -i https://py.mdrn.pl:8443/simple fnpdeploy
+fi
+
+exec $SUBVE/bin/fab "$@"
index d4abc96..26c80b3 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -8,42 +8,33 @@ import sys
 
 # Fabric needs Python 2.
 if sys.version_info[0] > 2:
-    from subprocess import check_call
-
-    ve = os.environ.get('VIRTUAL_ENV')
-    if not ve:
-        print('Not in virtualenv!')
-        sys.exit()
-    subve = os.path.join(ve, 'fnpdeploy_ve')
-    check_call(['virtualenv', '--python', '/usr/bin/python2.7', subve])
-    check_call([os.path.join(subve, 'bin/python')] + sys.argv)
-
     install_requires = []
     packages = []
     package_data = {}
     scripts = ['bin/fab']
 else:
+    install_requires = ['Fabric']
     packages = ['fnpdeploy']
     package_data = {
         'fnpdeploy': ['templates/*.template'],
         }
     scripts = ['bin/git-archive-all.sh']
-    install_requires = ['Fabric']
 
 
 setup(
     name='fnpdeploy',
-    version='0.1',
+    version='0.2',
     author='Radek Czajka',
     author_email='radekczajka@nowoczesnapolska.org.pl',
     url = '',
+    install_requires=install_requires,
     packages=packages,
     package_data=package_data,
     scripts=scripts,
-    install_requires=install_requires,
     test_suite='nose.collector',
     tests_require=['nose'],
     license='LICENSE',
     description='.',
     long_description="",
+    zip_safe=False,
 )