scripts/rvm-prompt in rvm-0.0.62 vs scripts/rvm-prompt in rvm-0.0.63

- old
+ new

@@ -1,8 +1,52 @@ #!/bin/bash -if [[ ! -z "$(which ruby | awk '/\.rvm/{print}')" ]] ; then - command=$(which ruby) - if [[ ! -z "$command" ]] ; then - echo "[$(echo $command | xargs dirname | xargs dirname | xargs basename | tr '-' ':')]" - fi ; unset command + +add(){ + token="$1" + eval "${token}_flag=1" ; shift + if [[ ! -z "$format" ]] ; then + format="${format}-\$${token}" + else + format="\$${token}" + fi +} + +if [[ ! -z "$(which ruby | awk '/rvm/{print}')" ]] ; then + unset format + while [[ $# -gt 0 ]] ; do + token="$1" ; shift + case "$token" in + i|interpreter) add "interpreter" ;; + v|version) add "version" ;; + p|patchlevel) add "patchlevel" ;; + r|revision) add "revision" ;; + a|architecture) add "architecture" ;; + *) echo "Unrecognized command line option '$token' for $0" ; exit 1 ;; + esac + done + + if [[ -z "$format" ]] ; then + add "interpreter" + add "version" + add "patchlevel" + fi + + ruby_string=$(dirname "$(which ruby)" | xargs dirname | xargs basename) + if [[ ! -z "$interpreter_flag" ]] ; then + interpreter="$(echo $ruby_string | awk -F'-' '{print $1}')" + fi + if [[ ! -z "$version_flag" ]] ; then + version="$(echo $ruby_string | awk -F'-' '{print $2}')" + fi + if [[ ! -z "$patchlevel_flag" ]] ; then + patchlevel=$(echo $ruby_string | awk -F'-' '{print $3}') + fi + if [[ ! -z "$architecture_flag" ]] ; then + architecture="$(echo "$(ruby -v)" | sed 's/^.*\[//' | sed 's/\].*$//')" + fi + + command="prompt=\"[$format]\"" + eval "$command" + echo "${prompt/-]/]}" fi +exit 0