update_rubygems   [plain text]


#!/usr/bin/env ruby
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems'

if ARGV.include? '-h' or ARGV.include? '--help' then
  $stderr.puts "rubygems_update [options]"
  $stderr.puts
  $stderr.puts "This will install the latest version of RubyGems."
  $stderr.puts
  $stderr.puts "\t--version=X.Y\tUpdate rubygems from the X.Y version."
  exit
end

unless ARGV.grep(/--version=([\d\.]*)/).empty? then
  exec Gem.ruby, '-S', $PROGRAM_NAME, "_#{$1}_"
end

update_dir = $LOAD_PATH.find { |dir| dir =~ /rubygems-update/ }

if update_dir.nil?
  puts "Error: Cannot find RubyGems Update Path!"
  puts
  puts "RubyGems has already been updated."
  puts "The rubygems-update gem may now be uninstalled."
  puts "E.g.    gem uninstall rubygems-update"
else
  update_dir = File.dirname(update_dir)
  Dir.chdir update_dir
  system(Gem.ruby, 'setup.rb', *ARGV)
end