From 572f4b67f67dcf6f585d9da05d6d5b018e15b02a Mon Sep 17 00:00:00 2001 From: Jakukyo Friel Date: Tue, 3 May 2016 22:36:43 +0800 Subject: [PATCH 1/4] Add `sudo` support for npm installer. --- lib/sprinkle/installers/npm.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/sprinkle/installers/npm.rb b/lib/sprinkle/installers/npm.rb index 102bf58..674f8d0 100644 --- a/lib/sprinkle/installers/npm.rb +++ b/lib/sprinkle/installers/npm.rb @@ -16,8 +16,8 @@ class Npm < Installer attr_accessor :package_name api do - def npm(package, &block) - install Npm.new(self, package, &block) + def npm(package, options={}, &block) + install Npm.new(self, package, options, &block) end end @@ -27,15 +27,15 @@ def has_npm(package) end end - def initialize(parent, package_name, &block) #:nodoc: - super parent, &block + def initialize(parent, package_name, options={}, &block) #:nodoc: + super parent, options, &block @package_name = package_name end protected def install_commands #:nodoc: - "npm install --global #{@package_name}" + "#{sudo_cmd}npm install --global #{@package_name}" end end From 4866637fd19097f676fc2704887fdf200fae2485 Mon Sep 17 00:00:00 2001 From: Jakukyo Friel Date: Tue, 3 May 2016 22:45:11 +0800 Subject: [PATCH 2/4] Use `fgrep` instead of `grep` in npm installer. `fgrep` is faster than `grep`. --- lib/sprinkle/installers/npm.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sprinkle/installers/npm.rb b/lib/sprinkle/installers/npm.rb index 674f8d0..65be7d0 100644 --- a/lib/sprinkle/installers/npm.rb +++ b/lib/sprinkle/installers/npm.rb @@ -23,7 +23,7 @@ def npm(package, options={}, &block) verify_api do def has_npm(package) - @commands << "npm --global list | grep \"#{package}@\"" + @commands << "npm --global list | fgrep \"#{package}@\"" end end From b004d0652cfc5b3a8486d08fc45cba90cf36253b Mon Sep 17 00:00:00 2001 From: Jakukyo Friel Date: Fri, 6 May 2016 20:02:14 +0800 Subject: [PATCH 3/4] Change `fgrep` to `grep -F`. `fgrep` is deprecated according to `man grep`. --- lib/sprinkle/installers/npm.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sprinkle/installers/npm.rb b/lib/sprinkle/installers/npm.rb index 65be7d0..5cebd4a 100644 --- a/lib/sprinkle/installers/npm.rb +++ b/lib/sprinkle/installers/npm.rb @@ -23,7 +23,7 @@ def npm(package, options={}, &block) verify_api do def has_npm(package) - @commands << "npm --global list | fgrep \"#{package}@\"" + @commands << "npm --global list | grep -F \"#{package}@\"" end end From 22488ed021f74b3c278b39d4342f1165e604f908 Mon Sep 17 00:00:00 2001 From: Jakukyo Friel Date: Mon, 11 Jul 2016 19:20:25 +0800 Subject: [PATCH 4/4] npm: Avoid false matches in has_npm(). Thanks to @yyyc514. --- lib/sprinkle/installers/npm.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sprinkle/installers/npm.rb b/lib/sprinkle/installers/npm.rb index 5cebd4a..96f9744 100644 --- a/lib/sprinkle/installers/npm.rb +++ b/lib/sprinkle/installers/npm.rb @@ -23,7 +23,7 @@ def npm(package, options={}, &block) verify_api do def has_npm(package) - @commands << "npm --global list | grep -F \"#{package}@\"" + @commands << "npm --global list | grep -F \" #{package}@\"" end end