1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'manifests/install.pp', line 1
define rbenv::install(
$user = $title,
$group = $user,
$home = '',
$root = '',
$rc = ".profile"
) {
# Workaround http://projects.puppetlabs.com/issues/9848
$home_path = $home ? { '' => "/home/${user}", default => $home }
$root_path = $root ? { '' => "${home_path}/.rbenv", default => $root }
$rbenvrc = "${home_path}/.rbenvrc"
$shrc = "${home_path}/${rc}"
if ! defined( Class['rbenv::dependencies'] ) {
require rbenv::dependencies
}
exec { "rbenv::checkout ${user}":
command => "git clone git://github.com/sstephenson/rbenv.git ${root_path}",
user => $user,
group => $group,
creates => $root_path,
path => ['/usr/bin', '/usr/sbin'],
timeout => 100,
cwd => $home_path,
require => Package['git'],
}
file { "rbenv::rbenvrc ${user}":
path => $rbenvrc,
owner => $user,
group => $group,
content => template('rbenv/dot.rbenvrc.erb'),
require => Exec["rbenv::checkout ${user}"],
}
exec { "rbenv::shrc ${user}":
command => "echo 'source ${rbenvrc}' >> ${shrc}",
user => $user,
group => $group,
unless => "grep -q rbenvrc ${shrc}",
path => ['/bin', '/usr/bin', '/usr/sbin'],
require => File["rbenv::rbenvrc ${user}"],
}
file { "rbenv::cache-dir ${user}":
owner => $user,
group => $group,
ensure => directory,
path => "${root_path}/cache",
require => Exec["rbenv::checkout ${user}"]
}
}
|