summaryrefslogtreecommitdiff
path: root/manifests/requirements.pp
diff options
context:
space:
mode:
authorAntonis Christofides <antonis@wikical.com>2013-10-08 17:59:17 +0300
committerAntonis Christofides <antonis@wikical.com>2013-10-08 17:59:17 +0300
commit4f2c04b70452249e6917859fdbf02bd90ec3af79 (patch)
treed9d18f6f9b7932fe6ad8fb72aee72764883b3648 /manifests/requirements.pp
parenta017bd325e677159e37d22d5b2ef65377846b23e (diff)
Added src parameter for pip in python::requirements
A requirements file can have --editable resources; in such a case the pip default is to install them in ~/src/, which can be unsuitable; for example, if run by root, /root/src/ is usually unreadable by other users. pip provides an --src parameter to specify an alternative directory. This is useful for installing requirements systemwide, outside a virtualenv.
Diffstat (limited to 'manifests/requirements.pp')
-rw-r--r--manifests/requirements.pp13
1 files changed, 12 insertions, 1 deletions
diff --git a/manifests/requirements.pp b/manifests/requirements.pp
index 67906fc..60c5b6c 100644
--- a/manifests/requirements.pp
+++ b/manifests/requirements.pp
@@ -19,6 +19,11 @@
# [*proxy*]
# Proxy server to use for outbound connections. Default: none
#
+# [*src*]
+# Pip --src parameter; if the requirements file contains --editable resources,
+# this parameter specifies where they will be installed. See the pip
+# documentation for more. Default: none (i.e. use the pip default).
+#
# [*environment*]
# Additional environment variables required to install the packages. Default: none
#
@@ -41,6 +46,7 @@ define python::requirements (
$owner = 'root',
$group = 'root',
$proxy = false,
+ $src = false,
$environment = []
) {
@@ -63,6 +69,11 @@ define python::requirements (
default => "--proxy=${proxy}",
}
+ $src_flag = $src ? {
+ false => '',
+ default => "--src=${src}",
+ }
+
# This will ensure multiple python::virtualenv definitions can share the
# the same requirements file.
if !defined(File[$requirements]) {
@@ -79,7 +90,7 @@ define python::requirements (
exec { "python_requirements${name}":
provider => shell,
- command => "${pip_env} --log-file ${cwd}/pip.log install ${proxy_flag} -r ${requirements}",
+ command => "${pip_env} --log-file ${cwd}/pip.log install ${proxy_flag} ${src_flag} -r ${requirements}",
refreshonly => true,
timeout => 1800,
user => $owner,