scripts/list in rvm-0.1.39 vs scripts/list in rvm-0.1.40
- old
+ new
@@ -6,10 +6,51 @@
# This is meant to be used with scripting.
list_strings() {
echo $(\ls $rvm_rubies_path)
}
+list_gemsets() {
+ echo
+ ruby=$(command -v ruby) ; current_ruby=""
+ if [[ ! -z "$ruby" ]] && [[ ! -z "$(echo $ruby | awk '/rvm/')" ]] ; then
+ current_ruby="$(echo $ruby | xargs dirname | xargs dirname | xargs basename 2> /dev/null)"
+ fi
+
+ printf "rvm gemsets\n"
+ for version in $(\ls $rvm_gems_path/ 2> /dev/null | awk '/[a-z]*-.*/ {print $NF}') ; do
+ ruby_version_name="$(echo "$version" | awk -F"$rvm_gemset_separator" '{print $1}')"
+ if [[ -n "$(echo $version | awk '/^jruby-/')" ]] ; then
+ string="[ $($rvm_rubies_path/$ruby_version_name/bin/ruby -v | awk '{print $NF}' | sed -e 's/\[//' -e 's/\]//') ]"
+ elif [[ -n "$(echo $version | awk '/^maglev-|^macruby-/')" ]] ; then
+ string="[ x86_64 ]"
+ else
+ string="[ $(file $rvm_rubies_path/$ruby_version_name/bin/ruby | awk '/x86.64/ {print "x86_64"} /386/ {print "i386"} /ppc/ {print "ppc"}' | tr "\n" ' ')]"
+ fi
+ unset ruby_version_name
+ printf "\n"
+ if [[ "$version" = "$current_ruby" ]]; then
+ printf "=> "
+ else
+ printf " "
+ fi
+ printf "$(tput setaf 2)$version$(tput sgr0) $string"
+ done ; unset version
+
+ if [[ -f "$rvm_config_path/default" ]] && [[ -s $rvm_config_path/default ]] ; then
+ version=$(grep 'MY_RUBY_HOME' $rvm_config_path/default | head -n 1 | awk -F"'" '{print $2}' | xargs basename)
+ if [[ ! -z "$version" ]] ; then
+ printf "\n\nDefault Ruby (for new shells)\n"
+ string="[ $(file $rvm_rubies_path/$version/bin/ruby | awk '/x86.64/ {print "x86_64"} /386/ {print "i386"} /ppc/ {print "ppc"}' | tr "\n" ' ')]"
+ printf "\n $(tput setaf 2)$version$(tput sgr0) $string"
+ fi ; unset version
+ fi
+ printf "\n"
+
+ unset current_ruby version selected system_ruby system_version string binary
+ echo
+}
+
list_default() {
strings="$(echo $rvm_ruby_args | awk '{print $2}')"
if [[ "$strings" = "string" ]] ; then
$rvm_scripts_path/alias show default 2>/dev/null | awk -F"$rvm_gemset_separator" '{print $1}' | xargs basename
else
@@ -49,11 +90,11 @@
fi
printf "rvm rubies\n"
for version in $(\ls $rvm_rubies_path/ 2> /dev/null | awk '/[a-z]*-.*/ {print $NF}') ; do
if [[ ! -z "$(echo $version | awk '/^jruby-/')" ]] ; then
- string="[ $($rvm_rubies_path/$version/bin/ruby -v | awk '{print $NF}') ]"
+ string="[ $($rvm_rubies_path/$version/bin/ruby -v | awk '{print $NF}' | sed -e 's/\[//' -e 's/\]//') ]"
elif [[ ! -z "$(echo $version | awk '/^maglev-|^macruby-/')" ]] ; then
string="[ x86_64 ]"
else
string="[ $(file $rvm_rubies_path/$version/bin/ruby | awk '/x86.64/ {print "x86_64"} /386/ {print "i386"} /ppc/ {print "ppc"}' | tr "\n" ' ')]"
fi
@@ -85,18 +126,20 @@
# This is not meant to be used with scripting. This is for interactive mode usage only.
action="$(echo "$1" | awk '{print $1}')"
if [[ "known" = "$action" ]] ; then
list_known
+elif [[ "gemsets" = "$action" ]] ; then
+ list_gemsets
elif [[ "default" = "$action" ]] ; then
list_default
elif [[ -z "$action" ]] || [[ "rubies" = "$action" ]] ; then
list_rubies
elif [[ "strings" = "$action" ]] ; then
list_strings
elif [[ "ruby_svn_tags" = "$action" ]] ; then
list_ruby_svn_tags
else # help
- printf "\nUsage: rvm list {known,default,rubies,strings}"
+ printf "\nUsage: rvm list {known,gemsets,default,rubies,strings}"
fi
exit $?