scripts/utility in rvm-0.0.53 vs scripts/utility in rvm-0.0.54
- old
+ new
@@ -44,13 +44,16 @@
if [ -f $file_name -a -s $file_name ] ; then
__rvm_log "debug" "$file_name (filtered):\n$(cat $file_name | awk '!/assword|_key/')\n"
fi
done
+ __rvm_log "debug" "gem sources:\n$(gem sources | awk '/gems/')"
+
if [ -f $rvm_path/bin/rvm ] ; then
__rvm_log "error" "rvm script in bin! \n$(ls -laht $rvm_path/bin/rvm)"
fi
+
}
# Logging functions based on level
function __rvm_log {
case "$1" in
@@ -156,26 +159,32 @@
fi
else
__rvm_log "debug" "No archive or no MD5, downloading"
download=1
fi
+
if [ $download -gt 0 ] ; then
eval $rvm_fetch "$1"
result=$?
if [ $result -gt 0 ] ; then
if [ $result -eq 78 ] ; then
__rvm_log "error" "The requested url does not exist: '$1'"
elif [ $result -eq 33 ] ; then
__rvm_log "debug" "Server does not support 'range' command, removing '$archive'"
rm -f $archive
- __rvm_fetch "$1"
+ eval $rvm_fetch "$1"
+ result=$?
+ if [ $result -gt 0 ] ; then
+ __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log"
+ fi
else
__rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log"
fi
fi
__rvm_pushpop
fi
+
unset archive
unset download
return $result
}
@@ -343,13 +352,13 @@
}
function __rvm_list {
if [ "$rvm_all_flag" ] ; then
svn list http://svn.ruby-lang.org/repos/ruby/tags/ | grep 'v1_[8|9]' | sed 's/^v1_//' | sed 's/\/$//' | awk -F'_' '{print "1."$1"."$2 " -l "$3}' | sed 's/p$//'
- echo -e "jruby 1.2.0\njruby 1.3.0\njruby 1.3.1\njruby --head"
- echo -e "rbx head (rubinius head)\nrbx head --jit"
- echo -e "ree 20090610\nree --head\nree 1.8.7 --head"
+ echo -e "jruby 1.2.0\njruby 1.3.0\njruby (1.3.1, the default)\njruby 1.4.1\njruby --head"
+ echo -e "rbx head (rubinius head, the default)\nrbx head --jit"
+ echo -e "ree 1.8.6 --head\nree (1.8.7, the default)"
else
current_ruby=`which ruby | xargs dirname | xargs dirname | xargs basename 2> /dev/null`
echo -e "\nruby:\n"
for version in `/bin/ls -l $rvm_path/ 2> /dev/null | awk '/ ruby-[1-2].*/ { print $NF }'` ; do
string=`$rvm_path/$version/bin/ruby -v`
@@ -592,20 +601,19 @@
return ${#errors[*]}
}
function __rvm_summary {
export successes errors statuses
- summary="\nSummary:\n"
- summary="$summary \033[0;32m${#successes[*]} successful: $(echo "${successes[*]}" | sed 's/ /, /g')\033[0m\n"
- summary="$summary \033[0;31m${#errors[*]} errors: $(echo "${errors[*]}" | sed 's/ /, /g')\033[0m\n"
+ summary="\nSummary:\n\n"
+ if [ ${#successes[*]} -gt 0 ] ; then
+ summary="$summary \033[0;32m${#successes[*]} successful: $(echo "${successes[*]}" | sed 's/ /, /g')\033[0m\n"
+ fi
+ if [ ${#errors[*]} -gt 0 ] ; then
+ summary="$summary \033[0;31m${#errors[*]} errors: $(echo "${errors[*]}" | sed 's/ /, /g')\033[0m\n"
+ fi
total=${#rubies[*]}
if [ ! -z "$ZSH_VERSION" ] ; then array_start=1 ; else array_start=0 ; fi
- for (( index = $array_start ; index < $total + $array_start ; index++ )) ; do
- __rvm_log "debug" "${rubies[$index]} returned ${statuses[$index]}"
- summary="$summary ${rubies[$index]} returned ${statuses[$index]}"
- if (( $index + 1 < $total + $array_start )) ; then summary="$summary\n" ; fi
- done ; unset index array_start
echo -e "$summary" | tee -a log/summary.log
return ${#errors[*]}
}
function __rvm_yaml {
@@ -668,17 +676,40 @@
rvm_action="ruby"
if [ ! -z "$rvm_debug_flag" ] ; then echo -e "$rvm_temp_path/$$.rb:\n$(cat $rvm_temp_path/$$.rb)" ; fi
__rvm_do
}
-function __rvm_gemset_dump {
+__rvm_gemset_delete () {
if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
- rvm_file_name=${rvm_file_name:-'default'}
+ if [ ! -z $rvm_gem_set_name ] ; then
+ gemdir="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version-$rvm_gem_set_name"
+ if [ -d $gemdir ] ; then
+ __rvm_log "warn" "Are you SURE you wish to remove the installed gemset '$rvm_gem_set_name ' ($gemdir)?"
+ echo -n "(anything other than 'yes' will cancel) > "
+ read response
+ if [ "$response" = "yes" ] ; then
+ rm -rf $gemdir
+ else
+ __rvm_log "info" "Not doing anything, phew... close call that one eh?"
+ fi
+ else
+ __rvm_log "info" "$gemdir does not exist, dirtywork alredy done."
+ fi
+ unset gemdir
+ else
+ __rvm_log "error" "A gemset name must be specified in order to delete a gemset."
+ fi
+}
+
+function __rvm_gemset_dump {
+ rvm_gem_set_name=${rvm_gem_set_name:-"default"}
+ rvm_file_name=${rvm_file_name:-$rvm_gem_set_name}
+
echo "# $rvm_gem_set_name.gemset generated gem dump file. Note that any env variable settings will be missing. Append these after using a ';' field separator" > $rvm_gem_set_name.gemset
- for gem in `gem list | sed 's/[\(|\)]//g' | sed 's/, /,/g' | tr ' ' ';'` ; do
+ 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
versions=`echo $gem | awk -F';' '{print $2}' | sed 's/,/ /g'`
for version in $versions ; do
echo "$name -v$version" >> $rvm_file_name
@@ -688,11 +719,13 @@
fi ; unset name
done ; unset file_name
}
function __rvm_gemset_load {
- if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
- echo "Loading $rvm_file file..."
+ rvm_gem_set_name=${rvm_gem_set_name:-"default"}
+ rvm_file_name=${rvm_file_name:-$rvm_gem_set_name}
+
+ echo "Loading $rvm_file_name file..."
rvm_ruby_gem_list=`/bin/ls $rvm_gem_home/specifications/ 2> /dev/null | sed 's/\.gemspec$//' 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}'`