[rubygems/rubygems] Move "Defaulting to user installation ..." message, so --install-dir and --user-install can suppress it.

https://github.com/rubygems/rubygems/commit/6677fc6853
This commit is contained in:
Ellen Marie Dash 2023-09-30 03:17:29 -04:00 committed by git
parent 28a6c4a1ad
commit be32109d64
2 changed files with 10 additions and 3 deletions

View File

@ -323,6 +323,10 @@ class Gem::Command
elsif @when_invoked elsif @when_invoked
@when_invoked.call options @when_invoked.call options
else else
if Gem.paths.auto_user_install && !options[:install_dir] && !options[:user_install]
self.ui.say "Defaulting to user installation because default GEM_HOME (#{Gem.default_dir}) is not writable."
end
execute execute
end end
ensure ensure

View File

@ -18,6 +18,10 @@ class Gem::PathSupport
# Directory with spec cache # Directory with spec cache
attr_reader :spec_cache_dir # :nodoc: attr_reader :spec_cache_dir # :nodoc:
##
# Whether or `Gem.paths.home` defaulted to a user install.
attr_reader :auto_user_install
## ##
# #
# Constructor. Takes a single argument which is to be treated like a # Constructor. Takes a single argument which is to be treated like a
@ -38,9 +42,8 @@ class Gem::PathSupport
@home = normalize_home_dir(Gem.default_dir) @home = normalize_home_dir(Gem.default_dir)
else else
# If `GEM_HOME` is not set AND we can't use `Gem.default_dir`, # If `GEM_HOME` is not set AND we can't use `Gem.default_dir`,
# default to a user installation and print a message about this. # default to a user installation and set `@auto_user_install`.
puts "Defaulting to user installation because default GEM_HOME (#{Gem.default_dir}) is not writable." @auto_user_install = true
@home = normalize_home_dir(Gem.user_dir) @home = normalize_home_dir(Gem.user_dir)
end end