scripts/gems in rvm-0.0.61 vs scripts/gems in rvm-0.0.62
- old
+ new
@@ -1,55 +1,55 @@
#!/bin/bash
__rvm_gems() {
unset GEM_PATH
- if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select $* ; fi
- if [ ! -z "$rvm_clear_flag" ] ; then
+ if [[ ! -z "$rvm_clear_flag" ]] ; then
__rvm_gems_clear
- elif [ ! -z "$rvm_load_flag" ] ; then
+ elif [[ ! -z "$rvm_load_flag" ]] ; then
__rvm_gems_load
- elif [ ! -z "$rvm_dump_flag" ] ; then
+ elif [[ ! -z "$rvm_dump_flag" ]] ; then
__rvm_gems_dump
- elif [ ! -z "$rvm_delete_flag" ] ; then
+ elif [[ ! -z "$rvm_delete_flag" ]] ; then
__rvm_gems_delete
- elif [ ! -z "$rvm_name_flag" ] ; then
+ elif [[ ! -z "$rvm_name_flag" ]] ; then
__rvm_gems_name
- elif [ ! -z "$rvm_dir_flag" ] ; then
+ elif [[ ! -z "$rvm_dir_flag" ]] ; then
__rvm_gems_dir
- elif [ ! -z "$rvm_list_flag" ] ; then
+ elif [[ ! -z "$rvm_list_flag" ]] ; then
__rvm_gems_list
- #elif [ ! -z "$rvm_use_flag" ] ; then
+ #elif [[ ! -z "$rvm_use_flag" ]] ; then
else
__rvm_gems_use
fi
}
__rvm_gems_select() {
- if [ -z "$rvm_gem_set_name" ] ; then
- if [ ! -z "$GEM_HOME" ] ; then
+ 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 [ ! -z "$rvm_ruby_gem_home" ] ; then
+ if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
rvm_gem_set_name=$(echo $rvm_ruby_gem_home | xargs basename | awk -F'%' '{print $2}')
fi
if [[ ! -z "$rvm_gem_set_name" ]] && [[ ! "$rvm_gem_set_name" =~ ^\d\.\d ]] ; then
rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
else
- if [ ! -z "$rvm_ruby_interpreter" -a ! -z "$rvm_ruby_version" -a "$rvm_ruby_interpreter" != "system" ] ; then
+ 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" ] ; then
+ elif [[ -z "$GEM_HOME" ]] ; then
rvm_ruby_gem_home=$(gem env gemdir)
- elif [ ! -z "$GEM_HOME" ] ; then
+ elif [[ ! -z "$GEM_HOME" ]] ; then
rvm_ruby_gem_home="$GEM_HOME"
else
__rvm_log "error" "Cannot select gem home, something definitely wrong :/"
fi
fi
- if [ -z "$rvm_gem_set_name" ] ; then unset rvm_gem_set_name ; 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
}
@@ -78,20 +78,20 @@
unset rvm_ruby_gem_home rvm_gem_set_name GEM_HOME GEM_PATH
__rvm_gems_select
__rvm_gems_use
}
-__rvm_gems_delete () {
- if [ ! -z "$rvm_gem_set_name" ] ; then
+__rvm_gems_delete() {
+ if [[ ! -z "$rvm_gem_set_name" ]] ; then
gemdir="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
- if [ -d "$gemdir" -a ! -z "$rvm_force_flag" ] ; then
+ if [[ -d "$gemdir" ]] && [[ ! -z "$rvm_force_flag" ]] ; then
rm -rf "$gemdir"
- elif [ -d "$gemdir" ] ; then
+ elif [[ -d "$gemdir" ]] ; then
__rvm_log "warn" "Are you SURE you wish to remove the installed gems '$rvm_gem_set_name ' ($gemdir)?"
echo -n "(anything other than 'yes' will cancel) > "
read response
- if [ "yes" = "$response" ] ; then
+ if [[ "yes" = "$response" ]] ; then
rm -rf "$gemdir"
else
__rvm_log "info" "Not doing anything, phew... close call that one eh?"
fi
else
@@ -101,17 +101,17 @@
__rvm_log "error" "A gems name must be specified in order to delete a gems."
fi
}
__rvm_gems_dump() {
- if [ ! -z "$rvm_ruby_gem_home" ] ; then
+ if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME ;
GEM_PATH="$rvm_ruby_gem_home" ; export GEM_PATH ;
fi
- if [ -z "$rvm_file_name" ] ; then
- if [ ! -z "$rvm_gem_set_name" ] ; then
+ if [[ -z "$rvm_file_name" ]] ; then
+ if [[ ! -z "$rvm_gem_set_name" ]] ; then
rvm_file_name="$rvm_gem_set_name.gems"
else
rvm_file_name="default.gems"
fi
fi
@@ -119,11 +119,11 @@
touch $rvm_file_name
echo "# $rvm_file_name generated gem dump file. Note that any env variable settings will be missing. Append these after using a ';' field separator" > $rvm_file_name
for gem in $(gem list | sed 's#[\(|\)]##g' | sed 's#, #,#g' | tr ' ' ';') ; do
name="$(echo $gem | awk -F';' '{print $1}')"
- if [ -z "$rvm_latest_flag" ] ; then
+ if [[ -z "$rvm_latest_flag" ]] ; then
versions="$(echo $gem | awk -F';' '{print $2}' | sed 's#,# #g')"
for version in $versions ; do
echo "$name -v$version" >> $rvm_file_name
done ; unset version versions
else
@@ -131,82 +131,82 @@
fi ; unset name
done ; unset file_name
}
__rvm_gems_load() {
- if [ ! -z "$rvm_ruby_gem_home" ] ; then
+ if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME ;
GEM_PATH="$rvm_ruby_gem_home" ; export GEM_PATH ;
fi
- if [ -z "$rvm_file_name" ] ; then
- if [ -f "$rvm_gem_set_name.gems" ] ; then
+ if [[ -z "$rvm_file_name" ]] ; then
+ if [[ -f "$rvm_gem_set_name.gems" ]] ; then
rvm_file_name="$rvm_gem_set_name.gems"
- elif [ -f "default.gems" ] ; then
+ elif [[ -f "default.gems" ]] ; then
rvm_file_name="default.gems"
- elif [ -f "system.gems" ] ; then
+ elif [[ -f "system.gems" ]] ; then
rvm_file_name="system.gems"
fi
fi
- if [ -f "$rvm_file_name" ] ; then
+ if [[ -f "$rvm_file_name" ]] ; then
echo "Loading $rvm_file_name file..."
- rvm_ruby_gem_list=$(/bin/ls $rvm_ruby_gem_home/specifications/ 2> /dev/null | sed 's#\.gemspec$##' 2> /dev/null)
+ rvm_ruby_gem_list=$(/bin/ls $rvm_ruby_gem_home/specifications/ 2> /dev/null | sed 's#.gems.*$##' 2> /dev/null)
while read line
do # Keep this on 2nd line :( bash fail.
# TODO: Switch to a different field separator than ; to allow for evals
gem="$(echo $line | awk -F';' '{print $1}')"
+ gem_prefix="$(echo $line | awk -F';' '{print $2}')"
if [[ ! -z "$gem" ]] && [[ "$gem" =~ \.gem$ ]] ; then
- gem_prefix="$(echo $line | awk -F';' '{print $2}')"
- gem_name="$(echo $gem | awk '{print $1}')"
- gem_version="$(echo $gem | awk '{print $2}' | sed 's#^.*-v[=]*[ ]*##' )"
- gem_postfix="$(echo $gem | sed "s/$gem_name//" | sed "s#-v[=]*[ ]*$gem_version##")"
+ gem_name="$(basename $gem | sed 's#\.gem##' | awk -F'-' '{$NF=NULL;print}')"
+ gem_version="$(basename $gem | sed 's#\.gem##' | awk -F'-' '{print $NF}' )"
+ gem_postfix="$(basename $gem | sed "s#.*\.gem##")"
else
- gem_prefix="$(echo $line | awk -F';' '{print $2}')"
gem_name="$(echo $gem | awk '{print $1}')"
- gem_version="$(echo $gem | awk '{print $2}' | sed 's#^.*-v[=]*[ ]*##' )"
- gem_postfix="$(echo $gem | sed "s/$gem_name//" | sed "s#-v[=]*[ ]*$gem_version##")"
+ gem_version="$(echo $gem | awk '{print $2}' | sed 's#.*-v[=]*[ ]*##' )"
+ gem_postfix="$(echo $gem | sed "s#${gem_name/ /}##" | sed "s#-v[=]*[ ]*${gem_version/ /}##")"
fi
- if [ -f "$gem" ] ; then
- gem_file_name="$(basename $gem)"
+ if [[ -f "$gem" ]] ; then
+ gem_file_name="$gem"
+ cache_file="$gem"
elif [[ ! -z "$gem" ]] && [[ "$gem" =~ ".gem$" ]] ; then
- gem_file_name="${gem}"
- elif [ -z "$gem_version" ] ; then # no version
- gem_file_name="${gem_name}*.gem"
+ gem_file_name="$gem"
+ elif [[ -z "${gem_version/ /}" ]] ; then # no version
+ gem_file_name="${gem_name/ /}*.gem"
else # version
- gem_file_name="$gem_name-$gem_version.gem"
+ gem_file_name="${gem_name/ /}-${gem_version/ /}.gem"
fi
- if [ -z "$rvm_force_flag" -a -f "$rvm_ruby_gem_home/specifications/${gem_file_name/\.gem/.gemspec}" ] ; then
+ if [[ -z "$rvm_force_flag" ]] && [[ -f "${rvm_ruby_gem_home}/specifications/${gem_name/ /}-${gem_version/ /}.gemspec" ]] ; then
unset gem
- __rvm_log "warn" "Skipping $(__color "yellow")$gem_name $gem_version$(__color "none") (--force to re-install)"
+ __rvm_log "warn" "$(__color "yellow")$gem_name $gem_version$(__color "none") exists, skipping (--force to re-install)"
else
- cache_file=$(/bin/ls -t "$rvm_gem_path/*/*/cache/${gem_file_name}*" 2> /dev/null | head -n1)
- if [ -z "$cache_file" ] ; then
- if [ -f "$gem_file_name" ] ; then
+ cache_file="${cache_file:-$(/bin/ls -t "${rvm_gem_path}/*/*/cache/${gem_file_name}*" 2> /dev/null | head -n1)}"
+ if [[ -z "$cache_file" ]] ; then
+ if [[ -f "$gem_file_name" ]] ; then
gem="$gem_file_name"
- elif [ -z "$gem_version" ] ; then
- gem="$gem_name"
+ elif [[ -z "${gem_version/ /}" ]] ; then
+ gem="${gem_name/ /}"
else
- gem="$gem_name -v $gem_version"
+ gem="${gem_name/ /} -v $gem_version"
fi
else # cached
- gem_file_name="$(basename $cache_file)"
+ 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 "$(echo "$rvm_ruby_gem_list" | awk "/${gem_name/ /} \(.*$gem_version/{print}")" ]] ; then
#if [[ ! -z "$rvm_ruby_gem_list" ]] && [[ "$rvm_ruby_gem_list" =~ $gem_string ]] ; then
- if [ ! -z "$rvm_force_flag" ] ; then
+ if [[ ! -z "$rvm_force_flag" ]] ; then
cp $cache_file $rvm_temp_path/$gem_file_name
gem="$rvm_temp_path/$gem_file_name" # install as a named local gem
fi
else
gem="$cache_file"
fi
fi
fi
- if [ ! -z "$gem" ] ; then
+ 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"
eval $command > /dev/null 2>&1