mirror of
https://github.com/pyenv/pyenv.git
synced 2025-04-15 18:45:32 +00:00
Merge pull request #806 from sstephenson/bundle-rehash
Avoid running `rbenv rehash` multiple times during `bundle install`
This commit is contained in:
commit
074161f9c1
1 changed files with 31 additions and 6 deletions
|
@ -6,13 +6,38 @@ hook = lambda do |installer|
|
|||
`rbenv rehash`
|
||||
end
|
||||
rescue
|
||||
warn "rbenv: error in gem-rehash (#{$!})"
|
||||
warn "rbenv: error in gem-rehash (#{$!.class.name}: #{$!.message})"
|
||||
end
|
||||
end
|
||||
|
||||
begin
|
||||
Gem.post_install(&hook)
|
||||
Gem.post_uninstall(&hook)
|
||||
rescue
|
||||
warn "rbenv: error installing gem-rehash hooks (#{$!})"
|
||||
if defined?(Bundler::Installer) && Bundler::Installer.respond_to?(:install)
|
||||
Bundler::Installer.class_eval do
|
||||
class << self
|
||||
alias install_without_rbenv_rehash install
|
||||
def install(root, definition, options = {})
|
||||
begin
|
||||
if Gem.default_path.include?(Bundler.bundle_path.to_s)
|
||||
bin_dir = Gem.bindir(Bundler.bundle_path.to_s)
|
||||
bins_before = File.exist?(bin_dir) ? Dir.entries(bin_dir).size : 2
|
||||
end
|
||||
rescue
|
||||
warn "rbenv: error in Bundler post-install hook (#{$!.class.name}: #{$!.message})"
|
||||
end
|
||||
|
||||
result = install_without_rbenv_rehash(root, definition, options)
|
||||
|
||||
if bin_dir && File.exist?(bin_dir) && Dir.entries(bin_dir).size > bins_before
|
||||
`rbenv rehash`
|
||||
end
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
begin
|
||||
Gem.post_install(&hook)
|
||||
Gem.post_uninstall(&hook)
|
||||
rescue
|
||||
warn "rbenv: error installing gem-rehash hooks (#{$!.class.name}: #{$!.message})"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue