lib/bundler/source/rubygems.rb in bundler-2.3.27 vs lib/bundler/source/rubygems.rb in bundler-2.4.0

- old
+ new

@@ -143,11 +143,11 @@ cached_built_in_gem(spec) unless spec.remote force = true end if installed?(spec) && !force - print_using_message "Using #{version_message(spec)}" + print_using_message "Using #{version_message(spec, options[:previous_spec])}" return nil # no post-install message end if spec.remote # Check for this spec from other sources @@ -158,31 +158,24 @@ path = fetch_gem_if_possible(spec, options[:previous_spec]) raise GemNotFound, "Could not find #{spec.file_name} for installation" unless path return if Bundler.settings[:no_install] - if requires_sudo? - install_path = Bundler.tmp(spec.full_name) - bin_path = install_path.join("bin") - else - install_path = rubygems_dir - bin_path = Bundler.system_bindir - end + install_path = rubygems_dir + bin_path = Bundler.system_bindir - Bundler.mkdir_p bin_path, :no_sudo => true unless spec.executables.empty? || Bundler.rubygems.provides?(">= 2.7.5") - require_relative "../rubygems_gem_installer" installer = Bundler::RubyGemsGemInstaller.at( path, - :security_policy => Bundler.rubygems.security_policies[Bundler.settings["trust-policy"]], - :install_dir => install_path.to_s, - :bin_dir => bin_path.to_s, + :security_policy => Bundler.rubygems.security_policies[Bundler.settings["trust-policy"]], + :install_dir => install_path.to_s, + :bin_dir => bin_path.to_s, :ignore_dependencies => true, - :wrappers => true, - :env_shebang => true, - :build_args => options[:build_args], + :wrappers => true, + :env_shebang => true, + :build_args => options[:build_args], :bundler_expected_checksum => spec.respond_to?(:checksum) && spec.checksum, :bundler_extension_cache_path => extension_cache_path(spec) ) if spec.remote @@ -207,38 +200,11 @@ installed_spec = installer.install spec.full_gem_path = installed_spec.full_gem_path spec.loaded_from = installed_spec.loaded_from - # SUDO HAX - if requires_sudo? - Bundler.rubygems.repository_subdirectories.each do |name| - src = File.join(install_path, name, "*") - dst = File.join(rubygems_dir, name) - if name == "extensions" && Dir.glob(src).any? - src = File.join(src, "*/*") - ext_src = Dir.glob(src).first - ext_src.gsub!(src[0..-6], "") - dst = File.dirname(File.join(dst, ext_src)) - end - SharedHelpers.filesystem_access(dst) do |p| - Bundler.mkdir_p(p) - end - Bundler.sudo "cp -R #{src} #{dst}" if Dir[src].any? - end - - spec.executables.each do |exe| - SharedHelpers.filesystem_access(Bundler.system_bindir) do |p| - Bundler.mkdir_p(p) - end - Bundler.sudo "cp -R #{install_path}/bin/#{exe} #{Bundler.system_bindir}/" - end - end - spec.post_install_message - ensure - Bundler.rm_rf(install_path) if requires_sudo? end def cache(spec, custom_path = nil) cached_path = Bundler.settings[:cache_all_platforms] ? fetch_gem_if_possible(spec) : cached_gem(spec) raise GemNotFound, "Missing gem file '#{spec.file_name}'." unless cached_path @@ -370,11 +336,11 @@ "#{cache_path}/#{spec.file_name}" end def normalize_uri(uri) uri = uri.to_s - uri = "#{uri}/" unless uri =~ %r{/$} + uri = "#{uri}/" unless %r{/$}.match?(uri) require_relative "../vendored_uri" uri = Bundler::URI(uri) raise ArgumentError, "The source must be an absolute URI. For example:\n" \ "source 'https://rubygems.org'" if !uri.absolute? || (uri.is_a?(Bundler::URI::HTTP) && uri.host.nil?) uri @@ -413,11 +379,11 @@ def cached_specs @cached_specs ||= begin idx = @allow_local ? installed_specs.dup : Index.new Dir["#{cache_path}/*.gem"].each do |gemfile| - next if gemfile =~ /^bundler\-[\d\.]+?\.gem/ + next if /^bundler\-[\d\.]+?\.gem/.match?(gemfile) s ||= Bundler.rubygems.spec_from_gem(gemfile) s.source = self idx << s end @@ -473,39 +439,19 @@ cache_path = download_cache_path(spec) || default_cache_path_for(rubygems_dir) gem_path = package_path(cache_path, spec) return gem_path if File.exist?(gem_path) - if requires_sudo? - download_path = Bundler.tmp(spec.full_name) - download_cache_path = default_cache_path_for(download_path) - else - download_cache_path = cache_path - end - - SharedHelpers.filesystem_access(download_cache_path) do |p| + SharedHelpers.filesystem_access(cache_path) do |p| FileUtils.mkdir_p(p) end - download_gem(spec, download_cache_path, previous_spec) + download_gem(spec, cache_path, previous_spec) - if requires_sudo? - SharedHelpers.filesystem_access(cache_path) do |p| - Bundler.mkdir_p(p) - end - Bundler.sudo "mv #{package_path(download_cache_path, spec)} #{gem_path}" - end - gem_path - ensure - Bundler.rm_rf(download_path) if requires_sudo? end def installed?(spec) installed_specs[spec].any? && !spec.deleted_gem? - end - - def requires_sudo? - Bundler.requires_sudo? end def rubygems_dir Bundler.bundle_path end