scripts/list in rvm-1.0.1 vs scripts/list in rvm-1.0.2

- old
+ new

@@ -12,53 +12,51 @@ current_ruby="$(__rvm_environment_identifier)" local all_rubies="$(list_strings)" printf "rvm gemsets\n" - for version in $(\ls $rvm_gems_path/ 2> /dev/null | awk '/[a-z]*-.*/ {print $NF}') ; do + 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}')" + [[ "$all_rubies" != *"$ruby_version_name"* ]] && continue - 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 + + if echo "$version" | \grep -q '^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 + 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 -n1 | awk -F"'" '{print $2}' | xargs basename --) + if [[ -f "$rvm_config_path/default" ]] && [[ -s "$rvm_config_path/default" ]] ; then + version=$(\grep 'MY_RUBY_HOME' "$rvm_config_path/default" | head -n1 | 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" ' ')]" + 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 + fi ; unset current_ruby version selected system_ruby system_version string binary + printf "\n\n" } list_default() { if [[ "$1" = "string" ]] ; then - $rvm_scripts_path/alias show default 2>/dev/null | awk -F"$rvm_gemset_separator" '{print $1}' | xargs basename -- + "$rvm_scripts_path/alias" show default 2>/dev/null | awk -F"$rvm_gemset_separator" '{print $1}' | xargs basename -- else if [[ -L "$rvm_rubies_path/default" ]]; then - version=$($rvm_scripts_path/alias show default 2>/dev/null | awk -F"$rvm_gemset_separator" '{print $1}' | xargs basename --) + version=$("$rvm_scripts_path/alias" show default 2>/dev/null | awk -F"$rvm_gemset_separator" '{print $1}' | 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" ' ')]" + 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\n" fi ; unset version fi fi } @@ -73,17 +71,17 @@ } # Query for valid rvm ruby strings # This is meant to be used with scripting. list_strings() { - echo $(\ls $rvm_rubies_path) + \ls "$rvm_rubies_path" } # This is meant to be used with scripting. list_gemset_strings() { local all_rubies="$(list_strings)" - for gemset in $(\ls $rvm_gems_path/ 2>/dev/null | xargs -n1 basename -- | \grep -v '^\(@\|doc$\|cache$\|system$\)' | sort); do + for gemset in $(\ls "$rvm_gems_path/" 2>/dev/null | xargs -n1 basename -- | \grep -v '^\(@\|doc$\|cache$\|system$\)' | sort); do local ruby_name="$(echo "$gemset" | awk -F$rvm_gemset_separator '{print $1}')" [[ "$all_rubies" != *"$ruby_name"* ]] && continue echo "$gemset" done } @@ -111,48 +109,41 @@ find "$rvm_rubies_path/" -type d -maxdepth 1 | tail -n+2 | xargs -n1 basename -- | __rvm_strip } list_rubies() { - if [[ "$1" = "strings" ]]; then - list_rubies_strings - return 0 - fi + if [[ "$1" = "strings" ]]; then list_rubies_strings ; return 0 ; fi - echo - current_ruby="$(__rvm_environment_identifier | awk -F"$rvm_gemset_separator" '{print $1}')" - 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}' | sed -e 's/\[//' -e 's/\]//') ]" - elif [[ ! -z "$(echo $version | awk '/^maglev-|^macruby-/')" ]] ; then + printf "\nrvm rubies\n" + for version in $(\ls "$rvm_rubies_path/" 2> /dev/null | awk '/[a-z]*-.*/ {print $NF}') ; do + if echo "$version" | \grep -q '^jruby-' ; then + 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" ' ')]" + string="[ $(file "$rvm_rubies_path/$version/bin/ruby" | awk '/x86.64/ {print "x86_64"} /386/ {print "i386"} /ppc/ {print "ppc"}' | \tr "\n" ' ')]" fi printf "\n" if [[ "$version" = "$current_ruby" ]]; then printf "=> " else printf " " fi + # TODO: Only use tput for interactive terminal sessions. 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 [[ -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" ' ')]" + 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 + fi ; unset current_ruby version selected system_ruby system_version string binary + printf "\n\n" } # List all rvm installed rubies, default ruby and system ruby. # Display the rubies, indicate their architecture and indicate which is currently used. # This is not meant to be used with scripting. This is for interactive mode usage only.