Defined Type: psick::nodejs::install

Defined in:
manifests/nodejs/install.pp

Overview

Parameters:

  • user (String)
  • nvm_dir (Optional[String]) (defaults to: undef)
  • version (String) (defaults to: $title)
  • set_default (Boolean) (defaults to: false)
  • from_source (Boolean) (defaults to: false)


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
# File 'manifests/nodejs/install.pp', line 2

define psick::nodejs::install (
  String $user,
  Optional[String] $nvm_dir = undef,
  String $version      = $title,
  Boolean $set_default = false,
  Boolean $from_source = false,
) {
  if $nvm_dir == undef {
    $final_nvm_dir = $user ? {
      'root'  => '/root/.nvm',
      default => "/home/${user}/.nvm"
    }
  }
  else {
    $final_nvm_dir = $nvm_dir
  }

  if $from_source {
    $nvm_install_options = ' -s '
  }
  else {
    $nvm_install_options = ''
  }

  exec { "nvm install node version ${version}":
    cwd         => $final_nvm_dir,
    command     => ". ${final_nvm_dir}/nvm.sh && nvm install ${nvm_install_options} ${version}",
    user        => $user,
    unless      => ". ${final_nvm_dir}/nvm.sh && nvm which ${version}",
    environment => ["NVM_DIR=${final_nvm_dir}"],
    provider    => shell,
  }

  if $set_default {
    exec { "nvm set node version ${version} as default":
      cwd         => $final_nvm_dir,
      command     => ". ${final_nvm_dir}/nvm.sh && nvm alias default ${version}",
      user        => $user,
      environment => ["NVM_DIR=${final_nvm_dir}"],
      unless      => ". ${final_nvm_dir}/nvm.sh && nvm which default | grep ${version}",
      provider    => shell,
      require     => Exec["nvm install node version ${version}"],
    }
  }
}