Sfoglia il codice sorgente

Only rehash if `bundle install` actually created new executables

This avoids running `rbenv rehash` after installing libraries that don't
have executables, or after a no-op `bundle install` that didn't install
anything.
pull/487/head^2
Mislav Marohnić 10 anni fa
parent
commit
2b0f16757a
1 ha cambiato i file con 9 aggiunte e 3 eliminazioni
  1. +9
    -3
      rbenv.d/exec/gem-rehash/rubygems_plugin.rb

+ 9
- 3
rbenv.d/exec/gem-rehash/rubygems_plugin.rb Vedi File

@ -15,14 +15,20 @@ if defined?(Bundler::Installer) && Bundler::Installer.respond_to?(:install)
class << self
alias install_without_rbenv_rehash install
def install(root, definition, options = {})
result = install_without_rbenv_rehash(root, definition, options)
begin
if result && Gem.default_path.include?(Bundler.bundle_path.to_s)
`rbenv rehash`
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

Caricamento…
Annulla
Salva