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 $?