diff options
author | Samuel Giddins <[email protected]> | 2023-02-13 18:39:08 -0800 |
---|---|---|
committer | git <[email protected]> | 2023-02-22 08:42:17 +0000 |
commit | 2dd96983505285bf58845d1687a9a6d6c0af959b (patch) | |
tree | 7ae673c2f046f63a6ca08502433aae1a42f5b1e5 /lib | |
parent | 47d4f73ee755a0ae7b26eb2e35b820202e008763 (diff) |
[rubygems/rubygems] Allow gem exec gem
https://github.com/rubygems/rubygems/commit/a767f7b9be
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rubygems/commands/exec_command.rb | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/rubygems/commands/exec_command.rb b/lib/rubygems/commands/exec_command.rb index b525d7fa2b..463308627a 100644 --- a/lib/rubygems/commands/exec_command.rb +++ b/lib/rubygems/commands/exec_command.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "../command" require_relative "../dependency_installer" +require_relative "../gem_runner" require_relative "../package" require_relative "../version_option" @@ -60,7 +61,10 @@ to the same gem path as user-installed gems. check_executable print_command - if options[:conservative] + if options[:gem_name] == "gem" && options[:executable] == "gem" + Gem::GemRunner.new.run options[:args] + return + elsif options[:conservative] install_if_needed else install @@ -135,15 +139,19 @@ to the same gem path as user-installed gems. activate! end - def install - gem_name = options[:gem_name] - gem_version = options[:version] - + def set_gem_exec_install_paths home = File.join(Gem.dir, "gem_exec") ENV["GEM_PATH"] = ([home] + Gem.path).join(Gem.path_separator) ENV["GEM_HOME"] = home Gem.clear_paths + end + + def install + set_gem_exec_install_paths + + gem_name = options[:gem_name] + gem_version = options[:version] install_options = options.merge( minimal_deps: false, |