Use pyvenv instead of virtualenv.

This commit is contained in:
Darko Poljak 2016-04-13 08:24:44 +02:00
parent 2410b30b40
commit 49423e174b
3 changed files with 73 additions and 86 deletions

View file

@ -30,13 +30,6 @@ destination="/$__object_id"
owner="$(cat "$__object/parameter/owner")" owner="$(cat "$__object/parameter/owner")"
group="$(cat "$__object/parameter/group")" group="$(cat "$__object/parameter/group")"
mode="$(cat "$__object/parameter/mode")" 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")" venvparams="$(cat "$__object/parameter/venvparams")"
[ "$state_should" = "$state_is" -a \ [ "$state_should" = "$state_is" -a \
@ -46,9 +39,8 @@ venvparams="$(cat "$__object/parameter/venvparams")"
case $state_should in case $state_should in
present) present)
if [ "$state_should" != "$state_is" ]; then if [ "$state_should" != "$state_is" ]; then
echo virtualenv "$python_opt" $venvparams "$destination" echo pyvenv $venvparams "$destination"
fi fi
if [ \( -n "$owner" -a "$owner_is" != "$owner" \) -o \ if [ \( -n "$owner" -a "$owner_is" != "$owner" \) -o \
\( -n "$group" -a "$group_is" != "$group" \) ]; then \( -n "$group" -a "$group_is" != "$group" \) ]; then

View file

@ -1,26 +1,24 @@
cdist-type__pyvenv(7) cdist-type__pyvenv(7)
================== ==================
Darko Poljak <darko.poljak--@--gmail.com> Darko Poljak <darko.poljak--@--gmail.com>
NAME NAME
---- ----
cdist-type__pyvenv - Create or remove python virtualenv cdist-type__pyvenv - Create or remove python virtual environment
DESCRIPTION DESCRIPTION
----------- -----------
This cdist type allows you to create or remove python virtualenv. This cdist type allows you to create or remove python virtual environment using pyvenv.
It assumes pip and virtualenv are already installed. Concrete packages It assumes python >= 3.3 is already installed. Concrete package depends on concrete OS
or installation procedures depend on concrete OS and/or OS and/or OS version/distribution.
version/distribution. Ensure this for e.g. in your init manifest as in the following example:
Ensure this in your init manifest as in the following example:
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
case "$__target_host" in case "$__target_host" in
localhost) localhost)
__package python3-pip --state present __package python3 --state present
require="__package/python3-pip" __package_pip virtualenv --pip pip3 --state present require="__package/python3" __pyvenv /home/darko/testenv --owner darko --group darko --mode 740 --state present
require="__package/python3-pip __package_pip/virtualenv" __pyvenv /home/darko/testenv --owner darko --group darko --mode 740 --state present
;; ;;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -35,20 +33,16 @@ state::
Either "present" or "absent", defaults to "present" Either "present" or "absent", defaults to "present"
group:: group::
Group to chgrp to. Group to chgrp to
mode:: mode::
Unix permissions, suitable for chmod. Unix permissions, suitable for chmod
owner:: owner::
User to chown to. User to chown to
python::
Use specific python interpreter for creating virtualenv.
The default is the interpreter that virtualenv was installed with.
venvparams:: venvparams::
virtualenv specific parameters to pass to virtualenv invocation. Specific parameters to pass to pyvenv invocation
EXAMPLES EXAMPLES
@ -57,11 +51,11 @@ EXAMPLES
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
__pyvenv /home/services/djangoenv __pyvenv /home/services/djangoenv
# Create python virtualenv for user foo using specific python interpreter. # Create python virtualenv for user foo.
__pyvenv /home/foo/fooenv --group foo --user foo --python python2.6 __pyvenv /home/foo/fooenv --group foo --user foo
# Create python virtualenv with specific parameters. # Create python virtualenv with specific parameters.
__pyvenv /home/services/djangoenv --venvparams "--relocatable --system-site-packages" __pyvenv /home/services/djangoenv --venvparams "--copies --system-site-packages"
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -74,3 +68,4 @@ COPYING
------- -------
Copyright \(C) 2016 Darko Poljak. Free use of this software is Copyright \(C) 2016 Darko Poljak. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3). granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -18,7 +18,7 @@
# along with cdist. If not, see <http://www.gnu.org/licenses/>. # 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 # or installation procedures depend on concrete OS and/or OS
# version/distribution. # version/distribution.