Quellcode durchsuchen

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ć vor 10 Jahren
Ursprung
Commit
2b0f16757a
1 geänderte Dateien mit 9 neuen und 3 gelöschten Zeilen
  1. +9
    -3
      rbenv.d/exec/gem-rehash/rubygems_plugin.rb

+ 9
- 3
rbenv.d/exec/gem-rehash/rubygems_plugin.rb Datei anzeigen

@ -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

Laden…
Abbrechen
Speichern