scripts/rubygems in rvm-1.0.7 vs scripts/rubygems in rvm-1.0.8

- old
+ new

@@ -5,12 +5,15 @@ result=0 __rvm_become rubygems_setup() { + __rvm_warn_on_rubyopt + unset RUBYOPT + if [[ ! -z "$(echo "$rvm_ruby_version" | awk '/^1\.9/')" ]] || [[ ! -z "$(echo $rvm_ruby_interpreter | awk '/^mput/')" ]] ; then install=0 elif [[ "$rvm_ruby_string" = "ruby-head" ]] ; then install=0 elif [[ -n "$(echo "$rvm_ruby_string" | awk '/^rbx|jruby|rubinius/')" ]]; then @@ -18,50 +21,85 @@ else install=1 fi if [[ "$install" -eq 0 ]] ; then - "$rvm_path/scripts/log" "error" "Cannot switch to ${version} for this interpreter." + + "$rvm_path/scripts/log" "error" \ + "Cannot switch to ${version} for this interpreter." + exit 1 + else - "$rvm_path/scripts/log" "info" "Removing old Rubygems files..." + + "$rvm_path/scripts/log" "info" \ + "Removing old Rubygems files..." + rubygems_dir="$(ruby -rrbconfig -e "puts Config::CONFIG.values_at('sitelibdir','vendorlibdir').detect {|path| File.directory?(File.join(path, 'rubygems')) }.to_s")" + if [[ -n "$rubygems_dir" && -d "$rubygems_dir" ]]; then + # Remove common files installed by ruby gems. - \rm -rf "${rubygems_dir}/ubygems.rb" "${rubygems_dir}/rubygems.rb" "${rubygems_dir}/rubygems" "${rubygems_dir}/gauntlet_rubygems.rb" + \rm -rf "${rubygems_dir}/ubygems.rb" "${rubygems_dir}/rubygems.rb" \ + "${rubygems_dir}/rubygems" "${rubygems_dir}/gauntlet_rubygems.rb" + fi "$rvm_path/scripts/log" "info" "Installing rubygems dedicated to $rvm_ruby_string..." rvm_rubygems_version="$version" rvm_gem_package_name="rubygems-$rvm_rubygems_version" rvm_rubygems_url=$(__rvm_db "rubygems_${rvm_rubygems_version}_url") rvm_gem_url="$rvm_rubygems_url/$rvm_gem_package_name.tgz" # Sanity check... If setup.rb is missing from the rubygems source path, # something went wrong. Cleanup, aisle 3! - if [[ ! -f "$rvm_src_path/$rvm_gem_package_name/setup.rb" ]]; then - \rm -rf "$rvm_src_path/$rvm_gem_package_name" + if [[ ! -f "${rvm_src_path:-"$rvm_path/src"}/$rvm_gem_package_name/setup.rb" ]]; then + \rm -rf "${rvm_src_path:-"$rvm_path/src"}/$rvm_gem_package_name" fi - if [[ ! -d "$rvm_src_path/$rvm_gem_package_name" ]] ; then - "$rvm_path/scripts/log" "info" "Retrieving $rvm_gem_package_name" - "$rvm_path/scripts/fetch" "$rvm_gem_url" - result=$? ; if [[ "$result" -gt 0 ]] ; then - "$rvm_path/scripts/log" "error" "There has been an error while trying to fetch the source. Aborting the installation." ; return $result + if [[ ! -d "${rvm_src_path:-"$rvm_path/src"}/$rvm_gem_package_name" ]] ; then + + "$rvm_path/scripts/log" "info" \ + "Retrieving $rvm_gem_package_name" + + "$rvm_path/scripts/fetch" "$rvm_gem_url" ; result=$? + + if [[ "$result" -gt 0 ]] ; then + + "$rvm_path/scripts/log" "error" \ + "There has been an error while trying to fetch the source. Aborting the installation." + + return $result + fi - \mkdir -p "$rvm_src_path/$rvm_gem_package_name" - __rvm_run "rubygems.extract" "gunzip < $rvm_archives_path/$rvm_gem_package_name.tgz | tar xf - -C $rvm_src_path" "Extracting $rvm_gem_package_name ..." + + if [[ ! -d "${rvm_src_path:-"$rvm_path/src"}/$rvm_gem_package_name" ]] ; then + \mkdir -p "${rvm_src_path:-"$rvm_path/src"}/$rvm_gem_package_name" + fi + + __rvm_run "rubygems.extract" \ + "gunzip < ${rvm_archives_path:-"$rvm_path/archives"}/$rvm_gem_package_name.tgz | tar xf - -C ${rvm_src_path:-"$rvm_path/src"}" \ + "Extracting $rvm_gem_package_name ..." fi - builtin cd "$rvm_src_path/$rvm_gem_package_name" + builtin cd "${rvm_src_path:-"$rvm_path/src"}/$rvm_gem_package_name" - __rvm_run "rubygems.install" "GEM_PATH=$rvm_ruby_gem_path GEM_HOME=$rvm_ruby_gem_home BUNDLE_PATH=$rvm_ruby_gem_home $rvm_ruby_home/bin/ruby $rvm_src_path/$rvm_gem_package_name/setup.rb" "Installing rubygems for $rvm_ruby_home/bin/ruby" + __rvm_run "rubygems.install" \ + "GEM_PATH=\"$rvm_ruby_gem_path:$rvm_ruby_global_gems_path\" GEM_HOME=\"$rvm_ruby_gem_home\" BUNDLE_PATH=\"$rvm_ruby_gem_home $rvm_ruby_home/bin/ruby\" \"${rvm_src_path:-"$rvm_path/src"}/$rvm_gem_package_name/setup.rb\"" \ + "Installing rubygems for $rvm_ruby_home/bin/ruby" result=$? + if [[ "$result" == 0 ]] ; then - "$rvm_path/scripts/log" "info" "Installation of rubygems completed successfully." + + "$rvm_path/scripts/log" "info" \ + "Installation of rubygems completed successfully." + else - "$rvm_path/scripts/log" "warning" "Installation of rubygems did not complete successfully." + + "$rvm_path/scripts/log" "warning" \ + "Installation of rubygems did not complete successfully." + fi if [[ ! -z "$rvm_ruby_major_version" ]] ; then ruby_lib_gem_path="$rvm_ruby_home/lib/ruby/gems/${rvm_ruby_release_version}.${rvm_ruby_major_version}" else @@ -78,29 +116,41 @@ unset ruby_lib_gem_path } if ! command -v ruby > /dev/null ; then - "$rvm_path/scripts/log" "error" "'ruby' was not found, cannot install rubygems unless ruby is present (Do you have an RVM ruby installed & selected?)" + + "$rvm_path/scripts/log" "error" \ + "'ruby' was not found, cannot install rubygems unless ruby is present (Do you have an RVM ruby installed & selected?)" + exit 1 + fi # # rvm rubygems use X # args=($*) version="${args[0]}" args="$(echo ${args[@]:1}) " # Strip trailing / leading / extra spacing. if [[ -z "$version" ]] ; then - "$rvm_path/scripts/log" "error" "A version must be specified, for example 'rvm rubygems 1.3.7'" + + "$rvm_path/scripts/log" "error" \ + "A version must be specified, for example 'rvm rubygems 1.3.7'" + exit 1 + fi # Update the rubygems to the current. if [[ "$version" = "current" ]]; then + version="$(__rvm_db "${rvm_ruby_interpreter}_rubygems_version")" + version="${rvm_rubygems_version:-"$(__rvm_db "rubygems_version")"}" + fi + rubygems_setup exit $result