| Index: modules/nodejs/manifests/package.pp |
| =================================================================== |
| new file mode 100644 |
| --- /dev/null |
| +++ b/modules/nodejs/manifests/package.pp |
| @@ -0,0 +1,51 @@ |
| +# == Type: nodejs::package |
| +# |
| +# Manage nodejs packages. |
| +# |
| +# === Parameters: |
| +# |
| +# [*ensure*] |
| +# Translated directly into the state of installed/uninstalled |
| +# package. |
| +# |
| +define nodejs::package ( |
| + $ensure = 'present', |
| +) { |
| + |
| + $check_command = [ |
| + "npm", "list", |
| + "--global", |
| + "--parseable", |
| + $name, |
| + ] |
| + |
| + if ensure_state($ensure) { |
| + $command = [ |
| + "npm", |
| + "install", "--global", |
| + $title, |
| + ] |
| + |
| + $unless = shellquote($check_command) |
| + $onlyif = undef |
| + } |
| + else { |
| + $command = [ |
| + "npm", |
| + "uninstall", "--global", |
| + $title, |
| + ] |
| + |
| + $unless = undef |
| + $onlyif = shellquote($check_command) |
| + } |
| + |
| + exec {"nodejs_package_$title": |
| + path => ["/usr/bin", "/bin"], |
| + command => shellquote($command), |
| + require => Package['nodejs'], |
| + onlyif => $onlyif, |
| + unless => $unless, |
| + } |
| +} |
| + |