diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb index 8d9f3a5b7d2ee8..3ff5f68a509ecd 100644 --- a/lib/bundler/cli.rb +++ b/lib/bundler/cli.rb @@ -477,6 +477,10 @@ def cache into the system wide RubyGems repository. D def exec(*args) + if ARGV.include?("--no-keep-file-descriptors") + SharedHelpers.major_deprecation(2, "The `--no-keep-file-descriptors` has been deprecated. `bundle exec` no longer mess with your file descriptors. Close them in the exec'd script if you need to") + end + require_relative "cli/exec" Exec.new(options, args).run end diff --git a/spec/bundler/other/major_deprecation_spec.rb b/spec/bundler/other/major_deprecation_spec.rb index 688efbcec8420c..daebdbe1f20b8d 100644 --- a/spec/bundler/other/major_deprecation_spec.rb +++ b/spec/bundler/other/major_deprecation_spec.rb @@ -92,6 +92,18 @@ end end + describe "bundle exec --no-keep-file-descriptors" do + before do + bundle "exec --no-keep-file-descriptors -e 1", :raise_on_error => false + end + + it "is deprecated", :bundler => "< 3" do + expect(deprecations).to include "The `--no-keep-file-descriptors` has been deprecated. `bundle exec` no longer mess with your file descriptors. Close them in the exec'd script if you need to" + end + + pending "is removed and shows a helpful error message about it", :bundler => "3" + end + describe "bundle update --quiet" do it "does not print any deprecations" do bundle :update, :quiet => true, :raise_on_error => false