scripts/utility in rvm-0.0.58 vs scripts/utility in rvm-0.0.59
- old
+ new
@@ -61,13 +61,11 @@
function __rvm_log {
if [ ! -z "$2" ] ; then level=$1 ; shift ; else level="info" ; fi
message=$1
case "$level" in
debug) shift ;
- if [ ! -z "$rvm_debug_flag" ] ; then
- echo -e "$(tput setaf 5)<d>$(tput sgr0) $message $(tput setaf 5)</d> $(tput sgr0) "
- fi
+ ((rvm_debug_flag)) && echo -e "$(tput setaf 5)<d>$(tput sgr0) $message $(tput setaf 5)</d> $(tput sgr0) "
;;
info) shift ; echo -e "$(tput setaf 2)<i>$(tput sgr0) $message $(tput setaf 2)</i> $(tput sgr0) " ;;
warn) shift ; echo -e "$(tput setaf 3)<w>$(tput sgr0) $message $(tput setaf 3)</w> $(tput sgr0) " ;;
error) shift ; echo -e "$(tput setaf 1)<e>$(tput sgr0) $message $(tput setaf 1)</e> $(tput sgr0) " ;;
fail) shift ; echo -e "$(tput setaf 1)<f>$(tput sgr0) $message $(tput setaf 1)</f> $(tput sgr0) " ; __rvm_pushpop ; return 1 ;;
@@ -82,11 +80,11 @@
eval "index=\$((\${#${array}[*]} + $__shell_array_start))"
eval "${array}[${index}]=${item}"
unset array item
}
-function __rvm_clean-path {
+function __rvm_clean_path {
PATH=$(echo $PATH | tr -s ':' '\n' | awk '!($0 in a){a[$0];print}' | tr -s '\n' ':' | sed 's/:$//')
export PATH
}
function __rvm_remove-rvm-from-path {
@@ -114,19 +112,19 @@
unset log_file command
}
function __rvm_cleanup_variables {
__rvm_unset_ruby_variables
- unset rvm_selected_flag rvm_action rvm_irbrc_file rvm_src_path rvm_path rvm_prefix_path rvm_gem_path rvm_command rvm_error_message rvm_gem_set_name rvm_url rvm_config_path 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_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_head_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_log_path rvm_file_name
+ unset rvm_ruby_selected_flag rvm_action rvm_irbrc_file rvm_src_path rvm_path rvm_prefix_path rvm_gem_path rvm_command rvm_error_message rvm_gem_set_name rvm_url rvm_config_path 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_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_head_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_log_path rvm_file_name
}
function __rvm_unset_ruby_variables {
- 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_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_ruby_gem_home rvm_ruby_binary rvm_ruby_home rvm_ruby_log_path rvm_ruby_src_path rvm_ruby_irbrc rvm_selected_flag rvm_ruby_selector rvm_ruby_string rvm_ruby_src_path rvm_ruby_repo_url rvm_major_version rvm_minor_version rvm_ruby_gem_home
+ 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_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_ruby_gem_home rvm_ruby_binary rvm_ruby_home rvm_ruby_log_path rvm_ruby_src_path rvm_ruby_irbrc rvm_ruby_selected_flag rvm_ruby_string rvm_ruby_string rvm_ruby_src_path rvm_ruby_repo_url rvm_major_version rvm_minor_version rvm_ruby_gem_home
}
# TODO: root user loadng of /etc/rvmrc
-function __rvm_load-rvmrc {
+function __rvm_load_rvmrc {
if [ -s ~/.rvmrc ] ; then source ~/.rvmrc ; fi
}
function __rvm_bin_scripts {
for rvm_ruby_binary in $(/bin/ls $rvm_path/*/bin/ruby 2> /dev/null) ; do
@@ -137,11 +135,11 @@
fi
done
}
function __rvm_bin_script {
- if [ -z "$rvm_selected_flag" ] ; then __rvm_select $* ; fi
+ if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; 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
@@ -292,28 +290,28 @@
fi
done
}
function __rvm_gemdir {
- if [ -z "$rvm_selected_flag" ] ; then __rvm_select $* ; fi
+ if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
mkdir -p $rvm_ruby_gem_home
echo $rvm_ruby_gem_home
}
function __rvm_source_dir {
- if [ -z "$rvm_selected_flag" ] ; then __rvm_select $* ; fi
+ if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
if [ -z "$rvm_ruby_src_path" ] ; then
__rvm_log "fail" "No source directory exists for the default implementation."
else
echo "$rvm_ruby_src_path"
fi
}
# clones from source implementation/version to default
# TODO: Merge this into 'rvm sync'
function __rvm_gemdup {
- if [ -z "$rvm_selected_flag" ] ; then __rvm_select $* ; fi
+ if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
__rvm_log "debug" "$rvm_ruby_interpreter"
if [ "default" = "$rvm_ruby_interpreter" ] ; then
# TODO: ~/.rvm/default first, then system user
rvm_source_gem_path="$rvm_system_user_gem_path"
elif [ "user" = "$rvm_ruby_interpreter" ] ; then
@@ -472,11 +470,11 @@
rvm_ruby_load_path="."
rvm_ruby_require=""
if [ "Darwin" = "$(uname)" ] ; then rvm_archflags="${rvm_archflags:-'-arch i386 -arch x86_64'}" ; fi
- __rvm_clean-path
+ __rvm_clean_path
rvm_result=$(echo $PATH | grep 'rvm\/bin:')
if [ -z $rvm_result ] ; then
PATH=$rvm_bin_path:$PATH ; export PATH
fi
@@ -539,23 +537,27 @@
else
__rvm_log "info" "Carry on then..."
fi ; unset response
}
-function __rvm_reload {
+__rvm_reload() {
source $rvm_path/scripts/rvm
}
-function __rvm_ruby_do {
+__rvm_ruby_do() {
__rvm_select
__rvm_use
binary="$(echo $rvm_action | sed 's/do$//')"
if [ -x $rvm_ruby_home/bin/$binary ] ; then
load_path="$rvm_ruby_home/bin:$rvm_ruby_load_path"
if [ "ruby" = "$binary" ] ; then
if [ -z "$(echo $rvm_ruby_args | awk '/\.rb$/')" ] ; then
- rvm_ruby_args="-S $rvm_ruby_args"
+ #if [[ $rvm_ruby_args =~ '\.rb$' ]] ; then
+ if [ -z "$prefix" ] ; then prefix="-S" ; fi
+ if [[ ! $rvm_ruby_args =~ $prefix ]] ; then
+ rvm_ruby_args="$prefix $rvm_ruby_args"
+ fi
fi
rvm_command="$rvm_ruby_home/bin/$binary $rvm_ruby_require -I$load_path $rvm_ruby_args"
else
rvm_command="$rvm_ruby_home/bin/$binary $rvm_ruby_args"
fi
@@ -589,12 +591,11 @@
# TODO: Extract the common functionality out of the if below
if [ ! -z "$rvm_ruby_string" ] ; then
unset rvm_ruby_interpreter rvm_ruby_version
__rvm_ruby_do
elif [ ! -z "$rvm_ruby_version" ] ;then
- for rvm_ruby_selector in $(echo $rvm_ruby_version | tr ',' ' ') ; do
- unset rvm_ruby_string
+ for rvm_ruby_string in $(echo $rvm_ruby_version | tr ',' ' ') ; do
__rvm_ruby_do
done
elif [ ! -z "$rvm_ruby_interpreter" ] ; then
unset rvm_ruby_string rvm_ruby_version
__rvm_ruby_do
@@ -715,11 +716,11 @@
function __rvm_pushpop {
if [ -z "$1" ] ; then
popd > /dev/null 2>&1
else
- pushd $1 > /dev/null 2>&1
+ pushd "$1" > /dev/null 2>&1
fi
}
function __rvm_state {
if [ -z "$rvm_state" ] ; then
@@ -793,13 +794,27 @@
elif [ -d spec/ ] ; then
:
fi
}
+#
+# Actual Utility functions.
+#
timestamp() {
if [ "Darwin" = "$(uname)" ] ; then
echo $(stat -c "%Y" $1)
else
echo $(stat -f "%m" $1)
fi
+}
+
+# Usage: contains "a_string" "${an_array[@]}"
+contains() {
+ local pattern="$1" ; shift
+ local index list
+ list=("$@")
+ for index in "${!list[@]}" ; do
+ [[ ${list[index]} = $pattern ]] && { echo $index ; return 0 ; }
+ done
+ echo -1 ; return 1
}