commit
cf451f0bea
@ -0,0 +1 @@ |
||||
defaults |
@ -0,0 +1 @@ |
||||
auto |
@ -1,2 +1,4 @@ |
||||
name |
||||
pip |
||||
state |
||||
runas |
||||
|
@ -0,0 +1,5 @@ |
||||
#!/bin/sh |
||||
|
||||
destination="/$__object_id" |
||||
|
||||
stat --print "%G" ${destination} 2>/dev/null || exit 0 |
@ -0,0 +1,5 @@ |
||||
#!/bin/sh |
||||
|
||||
destination="/$__object_id" |
||||
|
||||
stat --print "%U" ${destination} 2>/dev/null || exit 0 |
@ -0,0 +1,9 @@ |
||||
#!/bin/sh |
||||
|
||||
destination="/$__object_id" |
||||
|
||||
if [ -d "$destination" ]; then |
||||
echo present |
||||
else |
||||
echo absent |
||||
fi |
@ -0,0 +1,67 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2016 Darko Poljak (darko.poljak at gmail.com) |
||||
# |
||||
# This file is part of cdist. |
||||
# |
||||
# cdist is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# cdist is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
# |
||||
|
||||
state_is="$(cat "$__object/explorer/state")" |
||||
owner_is="$(cat "$__object/explorer/owner")" |
||||
group_is="$(cat "$__object/explorer/group")" |
||||
|
||||
state_should="$(cat "$__object/parameter/state")" |
||||
|
||||
owner="$(cat "$__object/parameter/owner")" |
||||
group="$(cat "$__object/parameter/group")" |
||||
mode="$(cat "$__object/parameter/mode")" |
||||
|
||||
[ "$state_should" = "$state_is" -a \ |
||||
"$owner" = "$owner_is" -a \ |
||||
"$group" = "$group_is" -a \ |
||||
-n "$mode" ] && exit 0 |
||||
|
||||
destination="/$__object_id" |
||||
venvparams="$(cat "$__object/parameter/venvparams")" |
||||
pyvenvparam="$__object/parameter/pyvenv" |
||||
if [ -f "$pyvenvparam" ] |
||||
then |
||||
pyvenv=$(cat "$pyvenvparam") |
||||
else |
||||
pyvenv="pyvenv" |
||||
fi |
||||
|
||||
case $state_should in |
||||
present) |
||||
if [ "$state_should" != "$state_is" ]; then |
||||
echo $pyvenv $venvparams "$destination" |
||||
fi |
||||
if [ \( -n "$owner" -a "$owner_is" != "$owner" \) -o \ |
||||
\( -n "$group" -a "$group_is" != "$group" \) ]; then |
||||
echo chown -R "${owner}:${group}" "$destination" |
||||
fi |
||||
if [ -n "$mode" ]; then |
||||
echo chmod -R "$mode" "$destination" |
||||
fi |
||||
;; |
||||
absent) |
||||
;; |
||||
|
||||
*) |
||||
echo "Unknown state: $state_should" >&2 |
||||
exit 1 |
||||
;; |
||||
esac |
@ -0,0 +1,80 @@ |
||||
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 pyvenv 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-venv --state present |
||||
require="__package/python3-venv" __pyvenv /home/darko/testenv --pyvenv "pyvenv-3.4" --owner darko --group darko --mode 740 --state present |
||||
require="__pyvenv/home/darko/testenv" __package_pip docopt --pip /home/darko/testenv/bin/pip --runas darko --state present |
||||
;; |
||||
esac |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
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 |
||||
|
||||
pyvenv:: |
||||
Use this specific pyvenv |
||||
|
||||
venvparams:: |
||||
Specific parameters to pass to pyvenv invocation |
||||
|
||||
|
||||
EXAMPLES |
||||
-------- |
||||
|
||||
-------------------------------------------------------------------------------- |
||||
__pyvenv /home/services/djangoenv |
||||
|
||||
# Use specific pyvenv |
||||
__pyvenv /home/foo/fooenv --pyvenv /usr/local/bin/pyvenv-3.4 |
||||
|
||||
# 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). |
||||
|
@ -0,0 +1,46 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2016 Darko Poljak (darko.poljak at gmail.com) |
||||
# |
||||
# This file is part of cdist. |
||||
# |
||||
# cdist is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# cdist is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
|
||||
# It assumes pyvenv is already installed. Concrete packages |
||||
# or installation procedures depend on concrete OS and/or OS |
||||
# version/distribution. |
||||
|
||||
state_should="$(cat "$__object/parameter/state")" |
||||
owner="$(cat "$__object/parameter/owner")" |
||||
group="$(cat "$__object/parameter/group")" |
||||
mode="$(cat "$__object/parameter/mode")" |
||||
|
||||
case "$state_should" in |
||||
present) |
||||
: |
||||
;; |
||||
|
||||
absent) |
||||
__directory "$__object_id" --state absent \ |
||||
--owner "$owner" \ |
||||
--group "$group" \ |
||||
--mode "$mode" |
||||
;; |
||||
|
||||
*) |
||||
echo "Unknown state: $state_should" >&2 |
||||
exit 1 |
||||
;; |
||||
esac |
@ -0,0 +1 @@ |
||||
|
@ -0,0 +1 @@ |
||||
|
@ -0,0 +1 @@ |
||||
|
@ -0,0 +1 @@ |
||||
present |
@ -0,0 +1 @@ |
||||
|
@ -0,0 +1,6 @@ |
||||
state |
||||
group |
||||
owner |
||||
mode |
||||
venvparams |
||||
pyvenv |
Loading…
Reference in new issue