summaryrefslogtreecommitdiff
path: root/lib/rubygems/commands/setup_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/commands/setup_command.rb')
-rw-r--r--lib/rubygems/commands/setup_command.rb19
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/rubygems/commands/setup_command.rb b/lib/rubygems/commands/setup_command.rb
index 579776df7e..d67caca91c 100644
--- a/lib/rubygems/commands/setup_command.rb
+++ b/lib/rubygems/commands/setup_command.rb
@@ -20,7 +20,8 @@ class Gem::Commands::SetupCommand < Gem::Command
:force => true,
:site_or_vendor => 'sitelibdir',
:destdir => '', :prefix => '', :previous_version => '',
- :regenerate_binstubs => true
+ :regenerate_binstubs => true,
+ :regenerate_plugins => true
add_option '--previous-version=VERSION',
'Previous version of RubyGems',
@@ -89,6 +90,11 @@ class Gem::Commands::SetupCommand < Gem::Command
options[:regenerate_binstubs] = value
end
+ add_option '--[no-]regenerate-plugins',
+ 'Regenerate gem plugins' do |value, options|
+ options[:regenerate_plugins] = value
+ end
+
add_option '-f', '--[no-]force',
'Forcefully overwrite binstubs' do |value, options|
options[:force] = value
@@ -181,6 +187,7 @@ By default, this RubyGems will install gem as:
say "RubyGems #{Gem::VERSION} installed"
regenerate_binstubs if options[:regenerate_binstubs]
+ regenerate_plugins if options[:regenerate_plugins]
uninstall_old_gemcutter
@@ -626,6 +633,16 @@ abort "#{deprecation_message}"
command.invoke(*args)
end
+ def regenerate_plugins
+ require "rubygems/commands/pristine_command"
+ say "Regenerating plugins"
+
+ args = %w[--all --only-plugins --silent]
+
+ command = Gem::Commands::PristineCommand.new
+ command.invoke(*args)
+ end
+
private
def target_bin_path(bin_dir, bin_file)