From be32109d64be81e796d44880aab966aabb4ae294 Mon Sep 17 00:00:00 2001 From: Ellen Marie Dash Date: Sat, 30 Sep 2023 03:17:29 -0400 Subject: [rubygems/rubygems] Move "Defaulting to user installation ..." message, so `--install-dir` and `--user-install` can suppress it. https://github.com/rubygems/rubygems/commit/6677fc6853 --- lib/rubygems/command.rb | 4 ++++ lib/rubygems/path_support.rb | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/rubygems/command.rb b/lib/rubygems/command.rb index 53bb609ae0..27aaf68db0 100644 --- a/lib/rubygems/command.rb +++ b/lib/rubygems/command.rb @@ -323,6 +323,10 @@ class Gem::Command elsif @when_invoked @when_invoked.call options 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 end ensure diff --git a/lib/rubygems/path_support.rb b/lib/rubygems/path_support.rb index 6ce66494ca..343670a801 100644 --- a/lib/rubygems/path_support.rb +++ b/lib/rubygems/path_support.rb @@ -18,6 +18,10 @@ class Gem::PathSupport # Directory with spec cache 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 @@ -38,9 +42,8 @@ class Gem::PathSupport @home = normalize_home_dir(Gem.default_dir) else # 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. - puts "Defaulting to user installation because default GEM_HOME (#{Gem.default_dir}) is not writable." - + # default to a user installation and set `@auto_user_install`. + @auto_user_install = true @home = normalize_home_dir(Gem.user_dir) end -- cgit v1.2.3