diff options
author | Peter Hoeg <p.hoeg@northwind.sg> | 2011-10-20 14:12:56 +0800 |
---|---|---|
committer | Peter Hoeg <p.hoeg@northwind.sg> | 2011-10-20 14:12:56 +0800 |
commit | a5545bd31c76a4f34339dc4e7b87f74fa0174015 (patch) | |
tree | 6d46199de24c8254b7bc9316ff95f089719561e1 /plugins/rbenv/rbenv.plugin.zsh | |
parent | 757fa3314d1c041ab715dbda838f3e9b2ff9ce17 (diff) | |
download | zsh-a5545bd31c76a4f34339dc4e7b87f74fa0174015.tar.gz zsh-a5545bd31c76a4f34339dc4e7b87f74fa0174015.tar.bz2 zsh-a5545bd31c76a4f34339dc4e7b87f74fa0174015.zip |
add: rbenv plugin
Diffstat (limited to 'plugins/rbenv/rbenv.plugin.zsh')
-rw-r--r-- | plugins/rbenv/rbenv.plugin.zsh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh new file mode 100644 index 000000000..136ea75e0 --- /dev/null +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -0,0 +1,44 @@ +FOUND_RBENV=0 +for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do + if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then + 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 + alias rubies='ruby -v' + function gemsets() { echo 'not supported' } + function rbenv_prompt_info() { echo "system: $(ruby -v | cut -f-2 -d ' ')" } +fi |