From 49423e174b35427e2984a8f77fb988c3c43bc862 Mon Sep 17 00:00:00 2001
From: Darko Poljak <darko.poljak@gmail.com>
Date: Wed, 13 Apr 2016 08:24:44 +0200
Subject: [PATCH] Use pyvenv instead of virtualenv.

---
 cdist/conf/type/__pyvenv/gencode-remote |  10 +-
 cdist/conf/type/__pyvenv/man.text       | 147 ++++++++++++------------
 cdist/conf/type/__pyvenv/manifest       |   2 +-
 3 files changed, 73 insertions(+), 86 deletions(-)

diff --git a/cdist/conf/type/__pyvenv/gencode-remote b/cdist/conf/type/__pyvenv/gencode-remote
index b0fa121d..4e4513ee 100755
--- a/cdist/conf/type/__pyvenv/gencode-remote
+++ b/cdist/conf/type/__pyvenv/gencode-remote
@@ -30,13 +30,6 @@ destination="/$__object_id"
 owner="$(cat "$__object/parameter/owner")"
 group="$(cat "$__object/parameter/group")"
 mode="$(cat "$__object/parameter/mode")"
-python="$(cat "$__object/parameter/python")"
-if [ "$python" ]
-then
-    python_opt="-p $python"
-else
-    python_opt=""
-fi
 venvparams="$(cat "$__object/parameter/venvparams")"
 
 [  "$state_should" = "$state_is" -a \
@@ -46,9 +39,8 @@ venvparams="$(cat "$__object/parameter/venvparams")"
 
 case $state_should in
     present)
-
         if [ "$state_should" != "$state_is" ]; then
-            echo virtualenv "$python_opt" $venvparams "$destination"
+            echo pyvenv $venvparams "$destination"
         fi
         if [ \( -n "$owner" -a "$owner_is" != "$owner" \) -o \
              \( -n "$group" -a "$group_is" != "$group" \) ]; then
diff --git a/cdist/conf/type/__pyvenv/man.text b/cdist/conf/type/__pyvenv/man.text
index 2f9a6ea5..3b1072f1 100755
--- a/cdist/conf/type/__pyvenv/man.text
+++ b/cdist/conf/type/__pyvenv/man.text
@@ -1,76 +1,71 @@
-cdist-type__pyvenv(7)
-==================
-Darko Poljak <darko.poljak--@--gmail.com>
-
-
-NAME
-----
-cdist-type__pyvenv - Create or remove python virtualenv
-
-
-DESCRIPTION
------------
-This cdist type allows you to create or remove python virtualenv.
-It assumes pip and virtualenv are already installed. Concrete packages
-or installation procedures depend on concrete OS and/or OS
-version/distribution.
-Ensure this in your init manifest as in the following example:
---------------------------------------------------------------------------------
-case "$__target_host" in
-    localhost)
-        __package python3-pip --state present
-        require="__package/python3-pip" __package_pip virtualenv --pip pip3 --state present
-        require="__package/python3-pip __package_pip/virtualenv" __pyvenv /home/darko/testenv --owner darko --group darko --mode 740 --state present
-    ;;
---------------------------------------------------------------------------------
-
-
-REQUIRED PARAMETERS
--------------------
-None
-
-OPTIONAL PARAMETERS
--------------------
-state::
-    Either "present" or "absent", defaults to "present"
-
-group::
-   Group to chgrp to.
-
-mode::
-   Unix permissions, suitable for chmod.
-
-owner::
-   User to chown to.
-
-python::
-    Use specific python interpreter for creating virtualenv.
-    The default is the interpreter that virtualenv was installed with.
-
-venvparams::
-    virtualenv specific parameters to pass to virtualenv invocation.
-
-
-EXAMPLES
---------
-
---------------------------------------------------------------------------------
-__pyvenv /home/services/djangoenv
-
-# Create python virtualenv for user foo using specific python interpreter.
-__pyvenv /home/foo/fooenv --group foo --user foo --python python2.6
-
-# Create python virtualenv with specific parameters.
-__pyvenv /home/services/djangoenv --venvparams "--relocatable --system-site-packages"
---------------------------------------------------------------------------------
-
-
-SEE ALSO
---------
-- cdist-type(7)
-
-
-COPYING
--------
-Copyright \(C) 2016 Darko Poljak. Free use of this software is
-granted under the terms of the GNU General Public License version 3 (GPLv3).
+cdist-type__pyvenv(7)
+==================
+Darko Poljak <darko.poljak--@--gmail.com>
+
+
+NAME
+----
+cdist-type__pyvenv - Create or remove python virtual environment
+
+
+DESCRIPTION
+-----------
+This cdist type allows you to create or remove python virtual environment using pyvenv.
+It assumes python >= 3.3 is already installed. Concrete package depends on concrete OS
+and/or OS version/distribution.
+Ensure this for e.g. in your init manifest as in the following example:
+--------------------------------------------------------------------------------
+case "$__target_host" in
+    localhost)
+        __package python3 --state present
+        require="__package/python3" __pyvenv /home/darko/testenv --owner darko --group darko --mode 740 --state present
+    ;;
+--------------------------------------------------------------------------------
+
+
+REQUIRED PARAMETERS
+-------------------
+None
+
+OPTIONAL PARAMETERS
+-------------------
+state::
+    Either "present" or "absent", defaults to "present"
+
+group::
+   Group to chgrp to
+
+mode::
+   Unix permissions, suitable for chmod
+
+owner::
+   User to chown to
+
+venvparams::
+   Specific parameters to pass to pyvenv invocation
+
+
+EXAMPLES
+--------
+
+--------------------------------------------------------------------------------
+__pyvenv /home/services/djangoenv
+
+# Create python virtualenv for user foo.
+__pyvenv /home/foo/fooenv --group foo --user foo
+
+# Create python virtualenv with specific parameters.
+__pyvenv /home/services/djangoenv --venvparams "--copies --system-site-packages"
+--------------------------------------------------------------------------------
+
+
+SEE ALSO
+--------
+- cdist-type(7)
+
+
+COPYING
+-------
+Copyright \(C) 2016 Darko Poljak. Free use of this software is
+granted under the terms of the GNU General Public License version 3 (GPLv3).
+
diff --git a/cdist/conf/type/__pyvenv/manifest b/cdist/conf/type/__pyvenv/manifest
index bd2b76e9..3f0fbb17 100755
--- a/cdist/conf/type/__pyvenv/manifest
+++ b/cdist/conf/type/__pyvenv/manifest
@@ -18,7 +18,7 @@
 # along with cdist. If not, see <http://www.gnu.org/licenses/>.
 #
 
-# It assumes pip and virtualenv are already installed. Concrete packages
+# It assumes python >= 3.3 is already installed. Concrete packages
 # or installation procedures depend on concrete OS and/or OS
 # version/distribution.