Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: modules/nodejs/manifests/package.pp

Issue 29483578: #2007 - Introduce nodejs module (Closed)
Patch Set: For comment 4 Created July 11, 2017, 6:14 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: modules/nodejs/manifests/package.pp
===================================================================
new file mode 100644
--- /dev/null
+++ b/modules/nodejs/manifests/package.pp
@@ -0,0 +1,54 @@
+# == 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 = [],
+) {
+
+ $check_command = [
+ "npm", "list",
+ "--global",
+ "--parseable",
+ $name,
+ ]
+
+ if ensure_state($ensure) {
+ $command = [
+ "npm",
+ "install", "--global",
+ $options,
+ $title,
+ ]
+
+ $onlyif = shellquote("test", "!", "`${check_command}`")
mathias 2017/07/11 18:24:42 That doesn't make any sense: The backticks are esc
+ }
+ else {
+ $command = [
+ "npm",
+ "uninstall", "--global",
+ $options,
+ $title,
+ ]
+
+ $onlyif = shellquote("test", "`${check_command}`")
+ }
+
+ exec {"state_$title":
+ path => ["/usr/bin"],
+ command => shellquote($command),
+ require => Package['nodejs'],
+ onlyif => $onlyif,
+ }
+}
+

Powered by Google App Engine
This is Rietveld