scripts/gems in rvm-0.0.78 vs scripts/gems in rvm-0.0.79
- old
+ new
@@ -119,22 +119,29 @@
rvm_file_name="$rvm_gem_set_name.gems"
elif [[ -f "default.gems" ]] ; then
rvm_file_name="default.gems"
elif [[ -f "system.gems" ]] ; then
rvm_file_name="system.gems"
+ elif [[ -f ".gems" ]] ; then
+ rvm_file_name=".gems"
+ else
+ __rvm_log "error" "No gem set file found."
+ return 1
fi
fi
- mkdir -p "$rvm_gem_path/cache"
+ mkdir -p "$rvm_gem_path/cache" # Ensure the base cache dir is initialized.
if [[ -f "$rvm_file_name" ]] ; then
echo "Loading $rvm_file_name file..."
rvm_ruby_gem_list=$(\ls $rvm_ruby_gem_home/specifications/ 2> /dev/null | sed 's#.gems.*$##' 2> /dev/null)
while read -r line
do # Keep this on 2nd line :(
- # TODO: Switch to a different field separator than ; to allow for evals
+ #
+ # Parse the line
+ #
gem="$(echo $line | awk -F';' '{print $1}')"
gem_prefix="$(echo $line | awk -F';' '{print $2}')"
if match "$gem" "\.gem$" ; then
gem_name="$(basename $gem | sed 's#\.gem##' | awk -F'-' '{$NF=NULL;print}')"
gem_version="$(basename $gem | sed 's#\.gem##' | awk -F'-' '{print $NF}' )"
@@ -147,16 +154,19 @@
if [[ -f "$gem" ]] ; then
gem_file_name="$gem"
elif match "$gem" ".gem$" ; then
gem_file_name="$gem"
- elif [[ -z "${gem_version/ /}" ]] ; then # no version
+ 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
+ #
+ # Evaluate
+ #
if [[ -z "$rvm_force_flag" ]] && [[ -f "${rvm_ruby_gem_home}/specifications/${gem_file_name}spec" ]] ; then
unset gem
__rvm_log "warn" "$(__color "yellow")$gem_name $gem_version$(__color "none") exists, skipping (--force to re-install)"
else
if [[ -f "$gem" ]] ; then
@@ -198,10 +208,19 @@
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_log "info" "Installing $gem_name $gem_version..."
- 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"
+ 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_log "info" "$(__color "green")$gem_name $gem_version$(__color "none") installed."
else