84 lines
1.9 KiB
Puppet
84 lines
1.9 KiB
Puppet
if $ruby_values == undef { $ruby_values = hiera_hash('ruby', false) }
|
|
|
|
include puphpet::params
|
|
|
|
if hash_key_true($ruby_values, 'versions') and count($ruby_values['versions']) > 0 {
|
|
$rvm_has_default = false
|
|
|
|
rvm_dotfile { 'do': }
|
|
|
|
create_resources(install_ruby, $ruby_values['versions'])
|
|
}
|
|
|
|
define install_ruby (
|
|
$version,
|
|
$default = false,
|
|
$bundler = false,
|
|
$gems = []
|
|
) {
|
|
|
|
$default_true = value_true($default)
|
|
$bundler_true = value_true($bundle)
|
|
|
|
if value_true($version) {
|
|
rvm_system_ruby { $version:
|
|
default_use => $default_true,
|
|
ensure => present,
|
|
require => File_line['rvm_autoupdate_flag=0 >> ~/.rvmrc'],
|
|
}
|
|
|
|
if $bundler_true == true {
|
|
$gems_merged = concat($gems, 'bundler')
|
|
} else {
|
|
$gems_merged = $gems
|
|
}
|
|
|
|
if count($gems_merged) > 0 {
|
|
each( $gems_merged ) |$key, $gem| {
|
|
$gem_array = split($gem, '@')
|
|
|
|
if count($gem_array) == 2 {
|
|
$gem_ensure = $gem_array[1]
|
|
} else {
|
|
$gem_ensure = present
|
|
}
|
|
|
|
rvm_gem { $gem_array[0]:
|
|
name => $gem_array[0],
|
|
ruby_version => $version,
|
|
ensure => $gem_ensure,
|
|
require => Rvm_system_ruby[$version]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
define rvm_dotfile {
|
|
if $::ssh_username != 'root' {
|
|
file { "/home/${::ssh_username}/.rvmrc":
|
|
ensure => present,
|
|
owner => $::ssh_username,
|
|
require => User[$::ssh_username]
|
|
}
|
|
file_line { 'rvm_autoupdate_flag=0 >> ~/.rvmrc':
|
|
ensure => present,
|
|
line => 'rvm_autoupdate_flag=0',
|
|
path => "/home/${::ssh_username}/.rvmrc",
|
|
require => File["/home/${::ssh_username}/.rvmrc"],
|
|
}
|
|
}
|
|
|
|
file { "/root/.rvmrc":
|
|
ensure => present,
|
|
owner => 'root',
|
|
}
|
|
file_line { 'rvm_autoupdate_flag=0 >> /root/.rvmrc':
|
|
ensure => present,
|
|
line => 'rvm_autoupdate_flag=0',
|
|
path => "/root/.rvmrc",
|
|
require => File["/root/.rvmrc"],
|
|
}
|
|
}
|