diff options
| author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2022-07-15 20:18:40 +0200 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2022-07-17 17:47:23 +0900 |
| commit | ef2d673052ebc0c1d450c15286bc8fdee5381383 (patch) | |
| tree | 71fc5ce5eb89a232195c0b6c354d8d034ab8fc2d /lib | |
| parent | 3cfc3fcf96a414fc1a966eacc57a282aa2580547 (diff) | |
[rubygems/rubygems] Show a proper error if extension dir is not writable
Instead of showing the bug report template.
https://github.com/rubygems/rubygems/commit/0c8b6f7dd5
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/bundler/rubygems_gem_installer.rb | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/bundler/rubygems_gem_installer.rb b/lib/bundler/rubygems_gem_installer.rb index 098ef0a356..12cc809664 100644 --- a/lib/bundler/rubygems_gem_installer.rb +++ b/lib/bundler/rubygems_gem_installer.rb @@ -66,8 +66,9 @@ module Bundler def build_extensions extension_cache_path = options[:bundler_extension_cache_path] - unless extension_cache_path && extension_dir = spec.extension_dir - prepare_extension_build + extension_dir = spec.extension_dir + unless extension_cache_path && extension_dir + prepare_extension_build(extension_dir) return super end @@ -76,10 +77,10 @@ module Bundler if build_complete && !options[:force] SharedHelpers.filesystem_access(extension_dir.parent, &:mkpath) SharedHelpers.filesystem_access(extension_cache_path) do - FileUtils.cp_r extension_cache_path, spec.extension_dir + FileUtils.cp_r extension_cache_path, extension_dir end else - prepare_extension_build + prepare_extension_build(extension_dir) super SharedHelpers.filesystem_access(extension_cache_path.parent, &:mkpath) SharedHelpers.filesystem_access(extension_cache_path) do @@ -98,7 +99,10 @@ module Bundler private - def prepare_extension_build + def prepare_extension_build(extension_dir) + SharedHelpers.filesystem_access(extension_dir, :create) do + FileUtils.mkdir_p extension_dir + end require "shellwords" unless Bundler.rubygems.provides?(">= 3.2.25") end |
