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,76 +1,71 @@
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 --state present
__package python3-pip --state present require="__package/python3" __pyvenv /home/darko/testenv --owner darko --group darko --mode 740 --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
-------------------
REQUIRED PARAMETERS None
-------------------
None OPTIONAL PARAMETERS
-------------------
OPTIONAL PARAMETERS state::
------------------- Either "present" or "absent", defaults to "present"
state::
Either "present" or "absent", defaults to "present" group::
Group to chgrp to
group::
Group to chgrp to. mode::
Unix permissions, suitable for chmod
mode::
Unix permissions, suitable for chmod. owner::
User to chown to
owner::
User to chown to. venvparams::
Specific parameters to pass to pyvenv invocation
python::
Use specific python interpreter for creating virtualenv.
The default is the interpreter that virtualenv was installed with. EXAMPLES
--------
venvparams::
virtualenv specific parameters to pass to virtualenv invocation. --------------------------------------------------------------------------------
__pyvenv /home/services/djangoenv
EXAMPLES # Create python virtualenv for user foo.
-------- __pyvenv /home/foo/fooenv --group foo --user foo
-------------------------------------------------------------------------------- # Create python virtualenv with specific parameters.
__pyvenv /home/services/djangoenv __pyvenv /home/services/djangoenv --venvparams "--copies --system-site-packages"
--------------------------------------------------------------------------------
# Create python virtualenv for user foo using specific python interpreter.
__pyvenv /home/foo/fooenv --group foo --user foo --python python2.6
SEE ALSO
# Create python virtualenv with specific parameters. --------
__pyvenv /home/services/djangoenv --venvparams "--relocatable --system-site-packages" - cdist-type(7)
--------------------------------------------------------------------------------
COPYING
SEE ALSO -------
-------- Copyright \(C) 2016 Darko Poljak. Free use of this software is
- cdist-type(7) granted under the terms of the GNU General Public License version 3 (GPLv3).
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).

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.