scripts/ruby-installer in rvm-0.0.69 vs scripts/ruby-installer in rvm-0.0.70
- old
+ new
@@ -23,11 +23,10 @@
#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
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
@@ -124,19 +123,66 @@
if [[ ! -z "$RUBYOPT" ]] ; then ruby_options="$RUBYOPT" ; unset RUBYOPT ; fi
__rvm_make_flags
case "$rvm_ruby_interpreter" in
macruby)
- if [[ "$(uname)" = "Darwin" ]] ; then
- rvm_url="$(__rvm_db "macruby_nightly_url")"
- __rvm_log "info" "Retrieving latest macruby" # $rvm_archives_path/macruby_nightly.pkg
- __rvm_fetch $rvm_url
- mv $rvm_archives_path/latest $rvm_archives_path/macruby_nightly.pkg
- __rvm_run "macruby/extract" "xar -x -f $rvm_archives_path/macruby_nightly.pkg -C $rvm_ruby_home" "Extracting macruby nightly package."
+ if [[ "Darwin" = "$(uname)" ]] ; then
+ if [[ "nightly" = "$rvm_ruby_version" ]] ; then
+ macruby_path="/usr/local/bin"
+ # TODO: Separated nightly from head.
+ rvm_url="$(__rvm_db "macruby_nightly_url")"
+ __rvm_log "info" "Retrieving the latest nightly macruby build..."
+ __rvm_fetch $rvm_url
+ mv "$rvm_archives_path/latest" "$rvm_archives_path/macruby_nightly.pkg"
+ __rvm_run "macruby/extract" "sudo installer -pkg '$rvm_path/archives/macruby_nightly.pkg' -target '/'"
+ mkdir -p "$rvm_ruby_home/bin"
+ elif [[ "head" = "$rvm_ruby_version" ]] ; then
+ # TODO: configure & make variables should be set here.
+ rvm_url="$(__rvm_db "${rvm_ruby_interpreter}_repo_url")"
+ if [[ -z "$rvm_url" ]] ; then
+ __rvm_log "fail" "rvm does not know the rvm repo url for 'ree_${rvm_ruby_version}'"
+ result=1
+ else
+ rvm_ruby_repo_url=$rvm_url
+ __rvm_install_source $*
+ fi
+ else
+ macruby_path="/usr/local/bin"
+ # TODO: Separated nightly from head.
+ rvm_url="$(__rvm_db "macruby_nightly_url")"
+ __rvm_log "info" "Retrieving latest macruby" # $rvm_archives_path/macruby_nightly.pkg
+ __rvm_fetch $rvm_url
+ mv $rvm_archives_path/latest $rvm_archives_path/macruby_nightly.pkg
+ __rvm_run "macruby/extract" "sudo installer -pkg '$rvm_path/archives/$rvm_ruby_package_file.zip' -target '/'"
+ mkdir -p "$rvm_ruby_home/bin"
+ fi
+
+ binaries="erb gem irb rake rdoc ri ruby testrb" # Trick to work in more shells :)
+ for binary_name in $(echo $binaries); do
+ # if [[ $binary_name != "gem" ]] ; then prefix="-S" ; fi
+ ruby_wrapper=$(cat <<RubyWrapper
+#!/bin/bash
+
+GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME
+GEM_PATH="$rvm_ruby_gem_home" ; export GEM_PATH
+MY_RUBY_HOME="$rvm_ruby_home" ; export MY_RUBY_HOME
+PATH="$rvm_ruby_home/bin:$rvm_ruby_gem_home/bin:\$PATH" ; export PATH
+
+exec $macruby_path/mac$binary_name $prefix "\$@"
+RubyWrapper
+)
+ files="$rvm_ruby_home/bin/$binary_name $rvm_path/bin/$binary_name-$rvm_ruby_package_name"
+ for file_name in $(echo $files) ; do
+ rm -f $file_name
+ echo "$ruby_wrapper" > $file_name
+ if [[ -f $file_name ]] ; then chmod +x $file_name ; fi
+ done
+ unset file_name ruby_wrapper binary_name files prefix
+ done
+ __rvm_irbrc
else
__rvm_log "fail" "MacRuby can only be installed on a Darwin OS."
fi
- __rvm_irbrc
;;
ree)
__rvm_make_flags
if [[ ! -z "$(echo $rvm_ruby_version | awk '/^1\.8/')" ]] && [[ -z "$rvm_head_flag" ]] ; then