From 49423e174b35427e2984a8f77fb988c3c43bc862 Mon Sep 17 00:00:00 2001 From: Darko Poljak 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 - - -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 + + +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 . # -# 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.