scripts/rvm-utility in rvm-0.0.41 vs scripts/rvm-utility in rvm-0.0.42
- old
+ new
@@ -50,15 +50,15 @@
# Logging functions based on level
function __rvm_log {
case "$1" in
- debug) shift ; echo -e "\n\033[0;35m <d> \033[0m $*" ;;
- info) shift ; echo -e "\n\033[0;32m <i> \033[0m $*" ;;
- warn) shift ; echo -e "\n\033[0;33m <w> \033[0m $*" ;;
- error) shift ; echo -e "\n\033[0;31m <e> \033[0m $*" ;;
- fail) shift ; echo -e "\n\033[0;31m <e> \033[0m $*" ; popd 2> /dev/null ; return 1 ;;
+ debug) shift ; echo -e "\033[0;35m <d> \033[0m $*" ;;
+ info) shift ; echo -e "\033[0;32m <i> \033[0m $*" ;;
+ warn) shift ; echo -e "\033[0;33m <w> \033[0m $*" ;;
+ error) shift ; echo -e "\033[0;31m <e> \033[0m $*" ;;
+ fail) shift ; echo -e "\033[0;31m <e> \033[0m $*" ; popd 2> /dev/null ; return 1 ;;
*) echo -e "$*"
esac
}
function __rvm_clean-path {
@@ -89,11 +89,11 @@
if [ $? -gt 0 ] ; then __rvm_log "error" "Error running '$command', please check $rvm_ruby_log_path/$log_file_name.error.log" ; popd 2> /dev/null ; return 1 ; fi
unset log_file command
}
function __rvm_cleanup-variables {
- unset rvm_selected rvm_action rvm_ruby_interpreter rvm_ruby_patch_level rvm_ruby_version rvm_irbrc_file rvm_ruby_irbrc rvm_source_path rvm_path rvm_prefix_path rvm_ruby_package_name rvm_gem_path rvm_command rvm_error_message rvm_ruby_home rvm_ruby_binary rvm_gem_set_name rvm_ruby_tag rvm_ruby_rev rvm_url rvm_ruby_make rvm_ruby_configure rvm_ruby_make_install rvm_config_path rvm_ruby_string rvm_bin_path rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_load_flag rvm_dump_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag
+ unset rvm_selected rvm_action rvm_ruby_interpreter rvm_ruby_patch_level rvm_ruby_version rvm_irbrc_file rvm_ruby_irbrc rvm_source_path rvm_path rvm_prefix_path rvm_ruby_package_name rvm_gem_path rvm_command rvm_error_message rvm_ruby_home rvm_ruby_binary rvm_gem_set_name rvm_ruby_tag rvm_ruby_rev rvm_url rvm_ruby_make rvm_ruby_configure rvm_ruby_make_install rvm_config_path rvm_ruby_string rvm_bin_path rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_load_flag rvm_dump_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_install_on_use
}
# TODO: root user loadng of /etc/rvmrc
function __rvm_load-rvmrc {
if [ -s ~/.rvmrc ] ; then source ~/.rvmrc ; fi
@@ -202,11 +202,11 @@
PATH="$rvm_path/bin:$rvm_system_path" ; export PATH
for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do unset $variable ; done
for file in system default ; do
- if [ -f $rvm_path/$file ] ; then rm -f $rvm_path/file ; fi
+ if [ -f $rvm_path/$file ] ; then rm -f $rvm_path/$file ; fi
done
__rvm_select "system"
for system_config in system_ps1 system_path system_ruby system_gem_path system_user_gem_path ; do
__rvm_db "$system_config" "delete"
@@ -433,12 +433,10 @@
rvm_config_path=${rvm_config_path:-"${rvm_path}/config"}
rvm_ruby_repo_url="${rvm_ruby_repo_url:-"http://svn.ruby-lang.org/repos/ruby"}"
# Rubinius sha1's will be available after RC1.
rvm_rubinius_repo_url="${rvm_rubinius_repo_url:-"git://github.com/evanphx/rubinius.git"}"
- #rvm_macruby_repo_url="${rvm_macruby_repo_url:-"http://svn.macosforge.org/repository/ruby/MacRuby"}"
- rvm_macruby_repo_url="${rvm_macruby_repo_url:-"git://github.com/masterkain/macruby.git"}"
rvm_jruby_repo_url="${rvm_jruby_repo_url:-"git://kenai.com/jruby~main"}"
rvm_ruby_load_path="."
rvm_ruby_require=""
__rvm_clean-path
@@ -514,38 +512,40 @@
}
function __rvm_ruby_do {
__rvm_select
__rvm_use
- #__rvm_
binary=`echo $rvm_action | sed 's/do$//'`
- lp="$rvm_ruby_home/bin:$rvm_ruby_load_path"
- if [ "$binary" = "ruby" ] ; then
- rvm_command="$rvm_ruby_home/bin/$binary $rvm_ruby_require -I$lp -S $rvm_ruby_args"
+ if [ -x $rvm_ruby_home/bin/$binary ] ; then
+ load_path="$rvm_ruby_home/bin:$rvm_ruby_load_path"
+ if [ "$binary" = "ruby" ] ; then
+ rvm_command="$rvm_ruby_home/bin/$binary $rvm_ruby_require -I$load_path -S $rvm_ruby_args"
+ else
+ rvm_command="$rvm_ruby_home/bin/$binary $rvm_ruby_args"
+ fi
+ echo -e "\n$rvm_ruby_string: $($rvm_ruby_home/bin/$binary -v)"
+ eval $rvm_command
+ result=$?
+ if [ $result -eq 0 ]; then
+ eval "successes=(${successes[*]} $rvm_ruby_string)"
+ else
+ eval "errors=(${errors[*]} $rvm_ruby_string)"
+ fi
+ eval "all=(${all[*]} $rvm_ruby_string)"
+ eval "results=(${results[*]} $result)"
+ # TODO: keep track of and re-set the previous selected ruby ;)
else
- rvm_command="$rvm_ruby_home/bin/$binary $rvm_ruby_args"
+ __rvm_log "warn" "'$rvm_ruby_home/bin/$binary' either does not exist or is not executable? :("
fi
- echo "$rvm_ruby_string: $($rvm_ruby_home/bin/$binary -v)"
- eval $rvm_command
- result=$?
- if [ $result -eq 0 ]; then
- successes[${#successes[*]}]=$rvm_ruby_string
- else
- errors[${#errors[*]}]=$rvm_ruby_string
- fi
- all[${#all[*]}]=$rvm_ruby_string
- results[${#results[*]}]=$result
- # TODO: keep track of and re-set the previous selected ruby ;)
- unset rvm_ruby_interpreter rvm_ruby_patch_level rvm_ruby_version rvm_ruby_package_name rvm_ruby_home rvm_ruby_irbrc rvm_ruby_binary rvm_ruby_string lp
+ unset rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_ruby_patch_level rvm_ruby_configure rvm_ruby_make rvm_ruby_make_install rvm_ruby_rev rvm_ruby_tag rvm_major_version rvm_minor_version rvm_gem_set_name rvm_gem_home rvm_ruby_binary rvm_ruby_package_name rvm_ruby_home rvm_ruby_log_path rvm_ruby_src_path rvm_ruby_irbrc rvm_selected
}
function __rvm_do {
all=() ; successes=() ; errors=() ; results=()
# TODO: Extract the common functionality out of the if below
if [ ! -z "$rvm_ruby_version" ] ; then
- rvm_ruby_selectors=$(echo $rvm_ruby_version | tr ',' ' ')
- for rvm_ruby_selector in $rvm_ruby_selectors ; do
+ for rvm_ruby_selector in `echo $rvm_ruby_version | tr ',' ' '` ; do
temp=$(echo $rvm_ruby_selector | awk '{print substr($1, 0, 1)}')
if [ ! -z "$(echo $temp | grep '[0-9]')" ] ; then
rvm_ruby_interpreter="ruby"
rvm_ruby_version="$rvm_ruby_selector"
else
@@ -554,65 +554,42 @@
fi
unset temp
__rvm_ruby_do
done
else # all
- rvm_ruby_binaries=`/bin/ls $rvm_path/*/bin/ruby 2> /dev/null`
- for rvm_ruby_binary in $rvm_ruby_binaries ; do
- if [ -x $rvm_ruby_binary ] ; then
- rvm_ruby_string=`dirname $rvm_ruby_binary | xargs dirname | xargs basename`
+ while read bin_line
+ do # Keep this on second line damnit!
+ if [ -x $bin_line ] ; then
+ rvm_ruby_string="`dirname $bin_line | xargs dirname | xargs basename`"
__rvm_ruby_do
fi
- done
+ done < <(/bin/ls $rvm_path/*/bin/ruby 2> /dev/null)
fi
if [ ! -z "$rvm_summary_flag" ] ; then
export successes errors results
- echo -e "\n\033[0;32msuccessful (${#successes[*]}) : [ $(echo "${successes[*]}" | sed 's/ /, /g') ]\033[0m"
- echo -e "\n\033[0;31merrors (${#errors[*]}) : [ $(echo "${errors[*]}" | sed 's/ /, /g') ]\033[0m"
+ echo -e "\nSummary:"
+ echo -e "\033[0;32msuccessful (${#successes[*]}) : [ $(echo "${successes[*]}" | sed 's/ /, /g') ]\033[0m"
+ echo -e "\033[0;31merrors (${#errors[*]}) : [ $(echo "${errors[*]}" | sed 's/ /, /g') ]\033[0m"
echo -e "all (${#all[*]}) : [ $(echo "${all[*]}" | sed 's/ /, /g') ]"
echo -e "exit results: [ $(echo "${results[*]}" | sed 's/ /, /g') ]\n"
else
- unset binary successes errors rvm_summary_flag
+ unset bin_line rvm_summary_flag
+ # successes errors
fi
return ${#errors[*]}
}
-function __rvm_irbrc {
- if [ ! -s "$rvm_ruby_irbrc" ] ; then
- rvm_irbrc_file=`cat <<-Config
-load '$HOME/.irbrc' if File.exists?('$HOME/.irbrc') rescue nil
-
-require "irb/completion" rescue nil
-
-@prompt = {
- :PROMPT_I => "${rvm_ruby_package_name} > ", # default prompt
- :PROMPT_S => "${rvm_ruby_package_name}%l> ", # known continuation
- :PROMPT_C => "${rvm_ruby_package_name} > ",
- :PROMPT_N => "${rvm_ruby_package_name} ?> ", # unknown continuation
- :RETURN => " => %s \n",
- :AUTO_INDENT => true
-}
-@prompt_mode = :DEFAULT
-IRB.conf[:PROMPT][@prompt_mode] = @prompt
-IRB.conf[:PROMPT_MODE] = @prompt_mode
-Config
-`
- touch $rvm_ruby_home/.irbrc
- echo -e "\n$rvm_irbrc_file" > $rvm_ruby_home/.irbrc
- fi
-
-}
-
function __rvm_ruby_string {
if [ "$rvm_ruby_interpreter" = "system" ] ; then
- unset rvm_ruby_string
+ rvm_ruby_string="system"
elif [ ! -z "$rvm_ruby_string" ] ; then
- rvm_ruby_string=`echo "$rvm_ruby_string" | sed 's/ruby-enterprise/ree/g'`
+ rvm_ruby_string=`echo "$rvm_ruby_string" | sed 's/ruby-enterprise/ree/g'` # dash-antics :)
rvm_ruby_interpreter=`echo $rvm_ruby_string | tr '-' ' ' | awk '{print $1}'`
- rvm_ruby_vesion=`echo $rvm_ruby_string | awk -F'-' '{print $2}'`
+ rvm_ruby_version=`echo $rvm_ruby_string | awk -F'-' '{print $2}'`
revision=`echo $rvm_ruby_string | awk -F'-' '{print $3}'`
+
if [ "$revision" = "head" -o "$revision" = "preview" ] ; then
rvm_ruby_revision="$revision"
else
echo $revision | grep '^p[0-9]\+' > /dev/null
if [ $? -eq 0 ] ; then
@@ -624,10 +601,12 @@
else
unset rvm_ruby_patch_level rvm_ruby_rev
fi
fi
fi
+
+ if [ "rvm_ruby_interpreter" = "ree" ] ; then rvm_ruby_interpreter="ruby-enterprise" ; fi
fi
return 0
}
function __rvm_gemset_dump {
@@ -684,17 +663,17 @@
gem_file_name=`basename $cache_file`
gem_string=`echo "$gem_file_name" | sed 's/\.gem$//'`
if [ ! -z "`echo "$rvm_ruby_gem_list" | awk "/$gem_string/{print}"`" ] ; then
if [ ! -z "$rvm_force_flag" ] ; then
cp $cache_file $rvm_path/tmp/$gem_file_name
- gem="$rvm_path/tmp/$gem_file_name -l" # install as a named local gem
+ gem="$rvm_path/tmp/$gem_file_name" # install as a named local gem
else
unset gem
__rvm_log "info" "$gem_name $gem_version is already installed, skipping. (use --force to force these to install regardless)"
fi
else
- gem="$cache_file -l"
+ gem="$cache_file"
fi
fi
if [ ! -z "$gem" ] ; then
# TODO: Set vars if fourth field is non-empty (means that there are conditional statements to execute in the gem install line.
@@ -705,9 +684,36 @@
fi
fi
unset gem gem_prefix gem_name gem_version gem_file_name gem_postfix cache_file gem_file_name gem_string
done < <(awk '/^[a-zA-Z]/{print}' "$rvm_load_file")
}
+
+function __rvm_irbrc {
+ if [ -d $rvm_ruby_home -a ! -s $rvm_ruby_irbrc ] ; then
+ rvm_irbrc_file=`cat <<-Config
+load '$HOME/.irbrc' if File.exists?('$HOME/.irbrc') rescue nil
+
+require "irb/completion" rescue nil
+
+@prompt = {
+ :PROMPT_I => "${rvm_ruby_package_name} > ", # default prompt
+ :PROMPT_S => "${rvm_ruby_package_name}%l> ", # known continuation
+ :PROMPT_C => "${rvm_ruby_package_name} > ",
+ :PROMPT_N => "${rvm_ruby_package_name} ?> ", # unknown continuation
+ :RETURN => " => %s \n",
+ :AUTO_INDENT => true
+}
+@prompt_mode = :DEFAULT
+IRB.conf[:PROMPT][@prompt_mode] = @prompt
+IRB.conf[:PROMPT_MODE] = @prompt_mode
+Config
+`
+ touch $rvm_ruby_irbrc
+ echo -e "\n$rvm_irbrc_file" > $rvm_ruby_home/.irbrc
+ fi
+
+}
+
#
# ruby supporting libraries:
#
function __rvm_readline_install {