From 21db5876caeb8f67dfef6f9010e4ab7639d39c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Fri, 6 Aug 2021 11:20:31 +0200 Subject: [PATCH] [rubygems/rubygems] Respect `BUNDLE_USER_HOME` for global config location https://github.com/rubygems/rubygems/commit/58fc31442f --- lib/bundler/settings.rb | 2 ++ spec/bundler/commands/config_spec.rb | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb index 03126f616c..abf7db21b4 100644 --- a/lib/bundler/settings.rb +++ b/lib/bundler/settings.rb @@ -430,6 +430,8 @@ module Bundler Pathname.new(ENV["BUNDLE_CONFIG"]) elsif ENV["BUNDLE_USER_CONFIG"] && !ENV["BUNDLE_USER_CONFIG"].empty? Pathname.new(ENV["BUNDLE_USER_CONFIG"]) + elsif ENV["BUNDLE_USER_HOME"] && !ENV["BUNDLE_USER_HOME"].empty? + Pathname.new(ENV["BUNDLE_USER_HOME"]).join("config") elsif Bundler.rubygems.user_home && !Bundler.rubygems.user_home.empty? Pathname.new(Bundler.rubygems.user_home).join(".bundle/config") end diff --git a/spec/bundler/commands/config_spec.rb b/spec/bundler/commands/config_spec.rb index 4e13a7903e..48f0ceab78 100644 --- a/spec/bundler/commands/config_spec.rb +++ b/spec/bundler/commands/config_spec.rb @@ -88,6 +88,16 @@ RSpec.describe ".bundle/config" do bundle "config get path", :env => { "BUNDLE_USER_CONFIG" => bundle_user_config } expect(out).to include("Set for the current user (#{bundle_user_config}): \"vendor\"") end + + context "when not explicitly configured, but BUNDLE_USER_HOME set" do + let(:bundle_user_home) { bundled_app(".bundle").to_s } + + it "uses the right location" do + bundle "config set path vendor", :env => { "BUNDLE_USER_HOME" => bundle_user_home } + bundle "config get path", :env => { "BUNDLE_USER_HOME" => bundle_user_home } + expect(out).to include("Set for the current user (#{bundle_user_home}/config): \"vendor\"") + end + end end describe "global" do