diff options
Diffstat (limited to 'oh-my-zsh/plugins/rbfu')
-rw-r--r-- | oh-my-zsh/plugins/rbfu/README.md | 18 | ||||
-rw-r--r-- | oh-my-zsh/plugins/rbfu/rbfu.plugin.zsh | 49 |
2 files changed, 67 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/rbfu/README.md b/oh-my-zsh/plugins/rbfu/README.md new file mode 100644 index 0000000..fbcab64 --- /dev/null +++ b/oh-my-zsh/plugins/rbfu/README.md @@ -0,0 +1,18 @@ +# rbfu plugin + +This plugin starts [rbfu](https://github.com/hmans/rbfu), a minimal Ruby version +manager, and adds some useful functions. + +To use it, add `rbfu` to the plugins array in your zshrc file: + +```zsh +plugins=(... rbfu) +``` + +**Note: `rbfu` is deprecated and should no longer be used.** + +## Functions + +- `rbfu-rubies`: lists all installed rubies available to rbfu. + +- `rvm_prompt_info`: shows the Ruby version being used with rbfu. diff --git a/oh-my-zsh/plugins/rbfu/rbfu.plugin.zsh b/oh-my-zsh/plugins/rbfu/rbfu.plugin.zsh new file mode 100644 index 0000000..27dc3ee --- /dev/null +++ b/oh-my-zsh/plugins/rbfu/rbfu.plugin.zsh @@ -0,0 +1,49 @@ +# Enables rbfu with --auto option, if available. +# +# Also provides a command to list all installed/available +# rubies. To ensure compatibility with themes, creates the +# rvm_prompt_info function to return the $RBFU_RUBY_VERSION +# version. + +command -v rbfu &>/dev/null || return + +eval "$(rbfu --init --auto)" + +# Internal: Print ruby version details, if it's currently active, etc. +function _rbfu_rubies_print() { + # 1: path to ruby file + # 2: active ruby + local rb rb_out + rb="${$1:t}" + rb_out="$rb" + + # If the ruby is a symlink, add @ to the name. + if [[ -h "$1" ]]; then + rb_out="${rb_out}${fg[green]}@${reset_color}" + fi + + # If the ruby is active, add * to the name and show it in red. + if [[ "$rb" = "$2" ]]; then + rb_out="${fg[red]}${rb_out} ${fg[red]}*${reset_color}" + fi + + echo $rb_out +} + +# Public: Provide a list with all available rubies, this basically depends +# on ~/.rfbu/rubies. Highlights the currently active ruby version and aliases. +function rbfu-rubies() { + local rbfu_dir active_rb + rbfu_dir="${RBFU_RUBIES:-${HOME}/.rbfu/rubies}" + active_rb="${RBFU_RUBY_VERSION:-system}" + + _rbfu_rubies_print "${rbfu_dir}/system" "$active_rb" + for rb in ${rbfu_dir}/*(N); do + _rbfu_rubies_print "$rb" "$active_rb" + done +} + +# Public: Create rvm_prompt_info command for themes compatibility, unless +# it has already been defined. +(( ${+functions[rvm_prompt_info]} )) || \ +function rvm_prompt_info() { echo "${${RBFU_RUBY_VERSION:=system}:gs/%/%%}" } |