aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2015-01-05 19:14:55 +0000
committerMike McQuaid2015-01-05 19:14:55 +0000
commitdc16371e19d1a8bae153f6f44620667c0f542e73 (patch)
treee099d8b5eac68b1bf38b08154e88cc70def3ded8 /Library
parent6fe0c3a83bb1a9f4b1a85e0c8092b0817d1360b2 (diff)
downloadbrew-dc16371e19d1a8bae153f6f44620667c0f542e73.tar.bz2
utils: install_gem_setup_path! now checks PATH.
Check the executable is present to give a better error message if it isn't. Closes Homebrew/homebrew#35541.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/utils.rb17
1 files changed, 13 insertions, 4 deletions
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index 16b228432..d4d8288c6 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -120,12 +120,21 @@ module Homebrew
HOMEBREW_REPOSITORY.cd { `git show -s --format="%cr" HEAD 2>/dev/null`.chuzzle }
end
- def self.install_gem_setup_path! gem
+ def self.install_gem_setup_path! gem, executable=gem
require "rubygems"
ENV["PATH"] = "#{Gem.user_dir}/bin:#{ENV["PATH"]}"
- return if quiet_system "gem", "list", "--installed", gem
- system "gem", "install", "--no-ri", "--no-rdoc",
- "--user-install", gem
+
+ unless quiet_system "gem", "list", "--installed", gem
+ safe_system "gem", "install", "--no-ri", "--no-rdoc",
+ "--user-install", gem
+ end
+
+ unless which executable
+ odie <<-EOS.undent
+ The '#{gem}' gem is installed but couldn't find '#{executable}' in the PATH:
+ #{ENV["PATH"]}
+ EOS
+ end
end
end