| Index: modules/nodejs/manifests/package.pp |
| =================================================================== |
| new file mode 100644 |
| --- /dev/null |
| +++ b/modules/nodejs/manifests/package.pp |
| @@ -0,0 +1,57 @@ |
| +# == Type: nodejs::package |
| +# |
| +# Manage nodejs packages. |
| +# |
| +# === Parameters: |
| +# |
| +# [*ensure*] |
| +# Translated directly into the state of installed/uninstalled |
| +# package. |
| +# |
| +# [*options*] |
| +# A list of zero or more options to install the package. |
| +# |
| +define nodejs::package ( |
| + $ensure = 'present', |
| + $options = [], |
|
mathias
2017/07/11 22:28:03
Are you sure we still need that $options parameter
|
| +) { |
| + |
| + $check_command = [ |
| + "npm", "list", |
| + "--global", |
| + "--parseable", |
| + $name, |
| + ] |
| + |
| + if ensure_state($ensure) { |
| + $command = [ |
| + "npm", |
| + "install", "--global", |
| + $options, |
| + $title, |
| + ] |
| + |
| + $unless = shellquote($check_command) |
| + $onlyif = undef |
| + } |
| + else { |
| + $command = [ |
| + "npm", |
| + "uninstall", "--global", |
| + $options, |
| + $title, |
| + ] |
| + |
| + $unless = undef |
| + $onlyif = shellquote($check_command) |
| + } |
| + |
| + exec {"state_$title": |
|
mathias
2017/07/11 22:28:03
Not a good title, no association with the type def
|
| + path => ["/usr/bin"], |
|
mathias
2017/07/11 22:28:03
Not sure but this path seems too short. I am sure
|
| + command => shellquote($command), |
| + require => Package['nodejs'], |
| + onlyif => $onlyif, |
| + unless => $unless, |
| + } |
| +} |
| + |