From 6402e8b59943544dd685dd2162c55b4f39b87a51 Mon Sep 17 00:00:00 2001 From: Dylan Markow Date: Mon, 30 Jan 2012 14:53:26 -0800 Subject: [PATCH] rbenv plugin now properly finds homebrew-installed rbenv (fixes #878) --- plugins/rbenv/rbenv.plugin.zsh | 68 +++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh index ae37404cd..6b842cd26 100644 --- a/plugins/rbenv/rbenv.plugin.zsh +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -4,40 +4,48 @@ for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do FOUND_RBENV=1 export RBENV_ROOT=$rbenvdir export PATH=${rbenvdir}/bin:$PATH - eval "$(rbenv init -)" - - alias rubies="rbenv versions" - alias gemsets="rbenv gemset list" - - function current_ruby() { - echo "$(rbenv version-name)" - } - - function current_gemset() { - echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a' | head -n1)" - } - - function gems { - local rbenv_path=$(rbenv prefix) - gem list $@ | sed \ - -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \ - -Ee "s|$(echo $rbenv_path)|$fg[magenta]\$rbenv_path$reset_color|g" \ - -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ - -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" - } - - function rbenv_prompt_info() { - if [[ -n $(current_gemset) ]] ; then - echo "$(current_ruby)@$(current_gemset)" - else - echo "$(current_ruby)" - fi - } fi done unset rbenvdir -if [ $FOUND_RBENV -eq 0 ] ; then +# Check for homebrew rbenv (installed directly in /usr/local/bin) +if [ -f /usr/local/bin/rbenv -a $FOUND_RBENV -eq 0 ] ; then + FOUND_RBENV=1 +fi + +if [ $FOUND_RBENV -eq 1 ] ; then + + eval "$(rbenv init -)" + + alias rubies="rbenv versions" + alias gemsets="rbenv gemset list" + + function current_ruby() { + echo "$(rbenv version-name)" + } + + function current_gemset() { + echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a' | head -n1)" + } + + function gems { + local rbenv_path=$(rbenv prefix) + gem list $@ | sed \ + -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \ + -Ee "s|$(echo $rbenv_path)|$fg[magenta]\$rbenv_path$reset_color|g" \ + -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ + -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" + } + + function rbenv_prompt_info() { + if [[ -n $(current_gemset) ]] ; then + echo "$(current_ruby)@$(current_gemset)" + else + echo "$(current_ruby)" + fi + } + +else alias rubies='ruby -v' function gemsets() { echo 'not supported' } function rbenv_prompt_info() { echo "system: $(ruby -v | cut -f-2 -d ' ')" }