Puppet Class: nvm
- Inherits:
- ::nvm::params
- Defined in:
- manifests/init.pp
Overview
See README.md for usage information
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'manifests/init.pp', line 2
class nvm (
$user,
$home = undef,
$nvm_dir = undef,
$profile_path = undef,
$version = $nvm::params::version,
$manage_user = $nvm::params::manage_user,
$manage_dependencies = $nvm::params::manage_dependencies,
$manage_profile = $nvm::params::manage_profile,
$nvm_repo = $nvm::params::nvm_repo,
$refetch = $nvm::params::refetch,
$install_node = $nvm::params::install_node,
$node_instances = $nvm::params::node_instances,
) inherits ::nvm::params {
if $home == undef and $user == 'root' {
$final_home = '/root'
}
elsif $home == undef {
$final_home = "/home/${user}"
}
else {
$final_home = $home
}
if $nvm_dir == undef {
$final_nvm_dir = "/home/${user}/.nvm"
}
else {
$final_nvm_dir = $nvm_dir
}
if $profile_path == undef {
$final_profile_path = "/home/${user}/.bashrc"
}
else {
$final_profile_path = $profile_path
}
validate_string($user)
validate_string($final_home)
validate_string($final_nvm_dir)
validate_string($final_profile_path)
validate_string($version)
validate_bool($manage_user)
validate_bool($manage_dependencies)
validate_bool($manage_profile)
if $install_node {
validate_string($install_node)
}
validate_hash($node_instances)
Exec {
path => '/bin:/sbin:/usr/bin:/usr/sbin',
}
if $manage_dependencies {
$nvm_install_require = Package['git','wget','make']
ensure_packages(['git', 'wget', 'make'])
}
else {
$nvm_install_require = undef
}
if $manage_user {
user { $user:
ensure => present,
home => $final_home,
managehome => true,
before => Class['nvm::install']
}
}
class { 'nvm::install':
user => $user,
home => $final_home,
version => $version,
nvm_dir => $final_nvm_dir,
nvm_repo => $nvm_repo,
dependencies => $nvm_install_require,
refetch => $refetch,
}
if $manage_profile {
file { "ensure ${final_profile_path}":
ensure => 'present',
path => $final_profile_path,
owner => $user,
} ->
file_line { 'add NVM_DIR to profile file':
path => $final_profile_path,
line => "export NVM_DIR=${final_nvm_dir}",
} ->
file_line { 'add . ~/.nvm/nvm.sh to profile file':
path => $final_profile_path,
line => "[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm",
}
}
if $install_node {
$final_node_instances = merge($node_instances, {
"${install_node}" => {
set_default => true,
},
})
}
else {
$final_node_instances = $node_instances
}
create_resources(::nvm::node::install, $final_node_instances, {
user => $user,
nvm_dir => $final_nvm_dir,
})
}
|