scripts/ruby-installer in rvm-0.0.67 vs scripts/ruby-installer in rvm-0.0.68

- old
+ new

@@ -10,33 +10,40 @@ if [[ ! -z "$rvm_force_flag" ]] ; then rm -rf "$rvm_ruby_home" "$rvm_ruby_src_path" fi result=0 - if [[ -z "$rvm_ruby_tag" ]] && [[ -z "$rvm_ruby_revision" ]] ; then + # TODO: This really should be about the url instead of this hokey logic. + if [[ -z "$rvm_head_flag" ]] && [[ -z "$rvm_ruby_tag" ]] && [[ -z "$rvm_ruby_revision" ]] ; then if [[ ! -f "$rvm_archives_path/$rvm_ruby_package_name.tar.gz" ]] ; then rvm_url="${rvm_url:-"ftp://ftp.ruby-lang.org/pub/ruby/1.$rvm_major_version/$rvm_ruby_package_name.tar.gz"}" __rvm_log "info" "Downloading $rvm_ruby_package_name, this may take a while depending on your connection..." __rvm_fetch "$rvm_url" if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi fi #mkdir -p "$rvm_ruby_src_path" # Is this line necessary considering -C below? v __rvm_run "extract" "tar xzf $rvm_archives_path/$rvm_ruby_package_name.tar.gz -C $rvm_src_path" "Extracting $rvm_ruby_package_name ..." if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi else - __rvm_log "info" "Retrieving Ruby from $rvm_url" if [[ ! -z "$(echo $rvm_url | awk '/^git/')" ]] ; then + if [[ -d "$rvm_ruby_src_path/.git" ]] ; then cd $rvm_ruby_src_path if [[ -z "$rvm_ruby_revision" ]] ; then + __rvm_log "info" "Pulling from $rvm_ruby_repo_url, this may take a while depending on your connection..." git pull origin master if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi else - git checkout ${rvm_ruby_revision:-HEAD} + if [[ -z "$rvm_ruby_sha" ]] ; then + git checkout HEAD + else + git checkout $(echo $rvm_ruby_sha | sed 's#^s##') + fi if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi fi else + __rvm_log "info" "Cloning from $rvm_ruby_repo_url, this may take a while depending on your connection..." git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_src_path if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi fi else if [[ -z "$rvm_ruby_revision" ]] ; then @@ -47,23 +54,25 @@ if [[ "head" = "$rvm_ruby_revision" ]] || [[ "trunk" = "$rvm_ruby_revision" ]] ; then rvm_url="$rvm_ruby_repo_url/trunk" rvm_rev="" else rvm_url=$rvm_ruby_repo_url/branches/ruby_1_${rvm_major_version}_${rvm_minor_version} - rvm_rev="-r $rvm_ruby_revision" + rvm_rev="-$rvm_ruby_revision" fi fi if [[ -d "$rvm_ruby_src_path/.svn" ]] ; then cd $rvm_ruby_src_path - if [[ -z "$rvm_rev" ]] ; then - __rvm_run "svn.update" "svn update" - else - __rvm_run "svn.checkout" "svn checkout -q $rvm_rev" + __rvm_log "info" "Updating ruby from $rvm_url" + __rvm_run "svn.update" "svn update" + if [[ ! -z "$rvm_rev" ]] ; then + __rvm_log "info" "Checking out revision ${rvm_rev/-r/-r } from $rvm_url" + __rvm_run "svn.checkout" "svn update -q ${rvm_rev/-r/-r }" fi else - __rvm_run "svn.checkout" "svn checkout -q $rvm_rev --force $rvm_url $rvm_ruby_src_path" + rm -rf $rvm_ruby_src_path + __rvm_run "svn.checkout" "svn checkout -q ${rvm_rev/-r/-r } $rvm_url $rvm_ruby_src_path" fi if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi fi fi @@ -533,12 +542,13 @@ else __rvm_log "info" "Installing rubygems dedicated to $rvm_ruby_package_name..." rvm_gem_package_name="rubygems-1.3.5" rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz" - if [[ -d "$rvm_src_path/$rvm_gem_package_name" ]] ; then + if [[ -d "$rvm_src_path/$rvm_gem_package_name" ]] && [[ -f "$rvm_src_path/$rvm_gem_package_name/setup.rb" ]]; then cd "$rvm_src_path/$rvm_gem_package_name" else + rm -rf "$rvm_src_path/$rvm_gem_package_name" __rvm_log "info" "Retrieving $rvm_gem_package_name" __rvm_fetch "$rvm_gem_url" mkdir -p "$rvm_src_path/$rvm_gem_package_name" __rvm_run "rubygems.extract" "tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_src_path" "Extracting $rvm_gem_package_name" fi