scripts/gems in rvm-0.0.88 vs scripts/gems in rvm-0.0.89
- old
+ new
@@ -1,45 +1,15 @@
#!/usr/bin/env bash
-__rvm_gems_select() {
- if [[ -z "$(which gem 2>/dev/null)" ]] ; then return 0 ; fi
+source $rvm_path/scripts/initialize
+source $rvm_path/scripts/utility
+source $rvm_path/scripts/selector
- if [[ -z "$rvm_gem_set_name" ]] ; then
- if [[ ! -z "$GEM_HOME" ]] ; then
- rvm_gem_set_name=$(echo $GEM_HOME | xargs basename | awk -F'%' '{print $2}')
- fi
+if [[ "$rvm_trace_flag" -eq 1 ]] ; then set -x ; export rvm_trace_flag ; fi
- if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
- rvm_gem_set_name=$(echo $rvm_ruby_gem_home | xargs basename | awk -F'%' '{print $2}')
- fi
+trap "rm -f $rvm_path/$$* > /dev/null 2>&1 ; exit" 0 1 2 3 15
- if [[ ! -z "$rvm_gem_set_name" ]] && ! $rvm_scripts_path/match "$rvm_gem_set_name" "^[0-9]\.[0-9]" ; then
- rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
- else
- if [[ ! -z "$rvm_ruby_interpreter" ]] && [[ ! -z "$rvm_ruby_version" ]] && [[ "$rvm_ruby_interpreter" != "system" ]] ; then
- rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version"
- elif [[ -z "$GEM_HOME" ]] && [[ ! -z "$(which gem 2>/dev/null)" ]] ; then
- rvm_ruby_gem_home=$(gem env gemdir)
- elif [[ ! -z "$GEM_HOME" ]] ; then
- rvm_ruby_gem_home="$GEM_HOME"
- else
- unset rvm_ruby_gem_home
- fi
- fi
- if [[ -z "$rvm_gem_set_name" ]] ; then unset rvm_gem_set_name ; fi
- else
- rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
- fi
-}
-
-__rvm_gems_use() {
- mkdir -p "$rvm_ruby_gem_home"
- GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME
- GEM_PATH="$GEM_HOME" ; export GEM_PATH
- __rvm_use
-}
-
__rvm_gems_name() {
echo "$rvm_gem_set_name"
}
__rvm_gems_dir() {
@@ -168,82 +138,85 @@
elif [[ -z "${gem_version/ /}" ]] ; then # no v/Users/wayne/projects/db0/rvm/scripts/gems
gem_file_name="${gem_name/ /}*.gem"
else # version
gem_file_name="${gem_name/ /}-${gem_version/ /}.gem"
fi
+ __rvm_gem_install
+ done < <(awk '/^[\.\/a-zA-Z]/{print}' "$rvm_file_name")
+ else
+ $rvm_scripts_path/log "error" "$rvm_file_name does not exist to load from."
+ fi
+}
+__rvm_gem_install() {
+ #
+ # Evaluate
+ #
+ if [[ -z "$rvm_force_flag" ]] && [[ -f "${rvm_ruby_gem_home}/specifications/${gem_file_name}spec" ]] ; then
+ unset gem
+ $rvm_scripts_path/log "info" "$($rvm_scripts_path/color "green")$gem_name $gem_version$($rvm_scripts_path/color "none") exists, skipping (--force to re-install)"
+ else
+ if [[ -f "$gem" ]] ; then
+ cache_file="$gem"
+ elif [[ -f "$rvm_gem_path/cache/${gem_file_name}" ]] ; then
+ cache_file="$rvm_gem_path/cache/${gem_file_name}"
+ else
+ cache_file="${cache_file:-$(\ls ${rvm_gem_path}/*/*/cache/${gem_file_name}* 2> /dev/null | sort | head -n1)}"
+ if [[ ! -z "$cache_file" ]] && [[ -f "$cache_file" ]] ; then
+ if [[ "$(dirname $cache_file)" != "$rvm_gem_path/cache/" ]] ; then
+ cp "$cache_file" "$rvm_gem_path/cache/"
+ cache_file="$rvm_gem_path/cache/$(basename $cache_file)"
+ fi
+ fi
+ fi
- #
- # Evaluate
- #
- if [[ -z "$rvm_force_flag" ]] && [[ -f "${rvm_ruby_gem_home}/specifications/${gem_file_name}spec" ]] ; then
- unset gem
- $rvm_scripts_path/log "info" "$($rvm_scripts_path/color "green")$gem_name $gem_version$($rvm_scripts_path/color "none") exists, skipping (--force to re-install)"
+ if [[ -z "$cache_file" ]] ; then
+ if [[ -f "$gem_file_name" ]] ; then
+ gem="$gem_file_name"
+ elif [[ -z "${gem_version/ /}" ]] ; then
+ gem="${gem_name/ /}"
else
- if [[ -f "$gem" ]] ; then
- cache_file="$gem"
- elif [[ -f "$rvm_gem_path/cache/${gem_file_name}" ]] ; then
- cache_file="$rvm_gem_path/cache/${gem_file_name}"
- else
- cache_file="${cache_file:-$(\ls ${rvm_gem_path}/*/*/cache/${gem_file_name}* 2> /dev/null | sort | head -n1)}"
- if [[ ! -z "$cache_file" ]] && [[ -f "$cache_file" ]] ; then
- if [[ "$(dirname $cache_file)" != "$rvm_gem_path/cache/" ]] ; then
- cp "$cache_file" "$rvm_gem_path/cache/"
- cache_file="$rvm_gem_path/cache/$(basename $cache_file)"
- fi
- fi
- fi
+ gem="${gem_name/ /} -v $gem_version"
+ fi
+ else # cached
+ gem_file_name="$(basename "$cache_file")"
+ gem_string="$(echo "$gem_file_name" | sed 's#\.gem$##')"
- if [[ -z "$cache_file" ]] ; then
- if [[ -f "$gem_file_name" ]] ; then
- gem="$gem_file_name"
- elif [[ -z "${gem_version/ /}" ]] ; then
- gem="${gem_name/ /}"
- else
- gem="${gem_name/ /} -v $gem_version"
- fi
- else # cached
- gem_file_name="$(basename "$cache_file")"
- gem_string="$(echo "$gem_file_name" | sed 's#\.gem$##')"
-
- # TODO: Switch this to use match
- if [[ ! -z "$(echo "$rvm_ruby_gem_list" | awk "/${gem_name/ /} \(.*$gem_version/{print}")" ]] ; then
- if [[ ! -z "$rvm_force_flag" ]] ; then
- gem="$rvm_gem_path/cache/$gem_file_name" # install as a named local gem
- fi
- else
- gem="$cache_file"
- fi
+ # TODO: Switch this to use match
+ if [[ ! -z "$(echo "$rvm_ruby_gem_list" | awk "/${gem_name/ /} \(.*$gem_version/{print}")" ]] ; then
+ if [[ ! -z "$rvm_force_flag" ]] ; then
+ gem="$rvm_gem_path/cache/$gem_file_name" # install as a named local gem
fi
+ else
+ gem="$cache_file"
fi
+ 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.
- __rvm_make_flags
- $rvm_scripts_path/log "warn" "$gem_name $gem_version is not installed, installing..."
- if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
- command="GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home' $gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
- else
- if [[ ! -z "$rvm_ruby_home" ]] ; then
- command="$gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
- else
- command="$gem_prefix gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
- fi
- fi
- if [[ -f "$gem" ]] ; then command="${command} -l" ; fi
- eval $command > /dev/null 2>&1
- result=$?
- if [[ $result -eq 0 ]] ; then
- $rvm_scripts_path/log "info" "$($rvm_scripts_path/color "green")$gem_name $gem_version$($rvm_scripts_path/color "none") installed."
- else
- $rvm_scripts_path/log "error" "$($rvm_scripts_path/color "red")$gem_name $gem_version$($rvm_scripts_path/color "none") failed to install."
- 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.
+ if [[ "rvm_make_flags_flag" -eq 1 ]] ; then __rvm_make_flags ; fi
+
+ $rvm_scripts_path/log "warn" "$gem_name $gem_version is not installed, installing..."
+ if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
+ command="GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home' $gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
+ else
+ if [[ ! -z "$rvm_ruby_home" ]] ; then
+ command="$gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
+ else
+ command="$gem_prefix gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
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_file_name")
- else
- $rvm_scripts_path/log "error" "$rvm_file_name does not exist to load from."
+ fi
+ if [[ -f "$gem" ]] ; then command="${command} -l" ; fi
+ eval $command > /dev/null 2>&1
+ result=$?
+ if [[ $result -eq 0 ]] ; then
+ $rvm_scripts_path/log "info" "$($rvm_scripts_path/color "green")$gem_name $gem_version$($rvm_scripts_path/color "none") installed."
+ else
+ $rvm_scripts_path/log "error" "$($rvm_scripts_path/color "red")$gem_name $gem_version$($rvm_scripts_path/color "none") failed to install."
+ fi
fi
+ unset gem gem_prefix gem_name gem_version gem_file_name gem_postfix cache_file gem_file_name gem_string
}
__rvm_gemdir() {
if [[ "$rvm_user_flag" -eq 1 ]] ; then
@@ -257,34 +230,33 @@
else
gem env gemdir
fi
}
-__rvm_gems() {
- unset GEM_PATH
- if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select $* ; fi
+unset GEM_PATH
- if [[ -z "$(which gem 2>/dev/null)" ]] ; then
- $rvm_scripts_path/log "error" "'gem' was not found, cannot perform gem actions."
- return 1
- fi
+if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select $* ; fi
- if [[ ! -z "$rvm_clear_flag" ]] ; then
- __rvm_gems_clear
- elif [[ ! -z "$rvm_load_flag" ]] ; then
- __rvm_gems_load
- elif [[ ! -z "$rvm_dump_flag" ]] ; then
- __rvm_gems_dump
- elif [[ ! -z "$rvm_delete_flag" ]] ; then
- __rvm_gems_delete
- elif [[ ! -z "$rvm_name_flag" ]] ; then
- __rvm_gems_name
- elif [[ ! -z "$rvm_dir_flag" ]] ; then
- __rvm_gems_dir
- elif [[ ! -z "$rvm_list_flag" ]] ; then
- __rvm_gems_list
- #elif [[ ! -z "$rvm_use_flag" ]] ; then
- else
- __rvm_gems_use
- fi
-}
+if [[ -z "$(which gem 2>/dev/null)" ]] ; then
+ $rvm_scripts_path/log "error" "'gem' was not found, cannot perform gem actions."
+ return 1
+fi
+if [[ "$rvm_clear_flag" -eq 1 ]] ; then
+ __rvm_gems_clear
+elif [[ "$rvm_load_flag" -eq 1 ]] ; then
+ __rvm_gems_load
+elif [[ "$rvm_dump_flag" -eq 1 ]] ; then
+ __rvm_gems_dump
+elif [[ "$rvm_delete_flag" -eq 1 ]] ; then
+ __rvm_gems_delete
+elif [[ "$rvm_name_flag" -eq 1 ]] ; then
+ __rvm_gems_name
+elif [[ "$rvm_dir_flag" -eq 1 ]] ; then
+ __rvm_gems_dir
+elif [[ "$rvm_list_flag" -eq 1 ]] ; then
+ __rvm_gems_list
+elif [[ "$rvm_install_flag" -eq 1 ]] ; then
+ __rvm_gem_install
+else
+ gem $*
+fi