diff options
| author | Marc Cornellà <hello@mcornella.com> | 2021-12-13 12:14:45 +0100 | 
|---|---|---|
| committer | Marc Cornellà <hello@mcornella.com> | 2021-12-13 17:14:25 +0100 | 
| commit | 7b12fa9799edf07547cf5a55cf6518a4cb4c4852 (patch) | |
| tree | 48b1c60496a6e152f79ef6fe50dac24dea53064f /plugins | |
| parent | e3bb6e685dc0325f472a4cfadb9847add12ec699 (diff) | |
| download | zsh-7b12fa9799edf07547cf5a55cf6518a4cb4c4852.tar.gz zsh-7b12fa9799edf07547cf5a55cf6518a4cb4c4852.tar.bz2 zsh-7b12fa9799edf07547cf5a55cf6518a4cb4c4852.zip | |
style(rbfu): clean up code
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/rbfu/README.md | 1 | ||||
| -rw-r--r-- | plugins/rbfu/rbfu.plugin.zsh | 76 | 
2 files changed, 42 insertions, 35 deletions
| diff --git a/plugins/rbfu/README.md b/plugins/rbfu/README.md index f1f9fa2f7..fbcab64de 100644 --- a/plugins/rbfu/README.md +++ b/plugins/rbfu/README.md @@ -4,6 +4,7 @@ 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)  ``` diff --git a/plugins/rbfu/rbfu.plugin.zsh b/plugins/rbfu/rbfu.plugin.zsh index 008485205..c973fbf9f 100644 --- a/plugins/rbfu/rbfu.plugin.zsh +++ b/plugins/rbfu/rbfu.plugin.zsh @@ -5,38 +5,44 @@  # rvm_prompt_info function to return the $RBFU_RUBY_VERSION  # version. -command -v rbfu &>/dev/null - -if [[ $? -eq 0 ]]; then -  eval "$(rbfu --init --auto)" - -  # Internal: Print ruby version details, if it's currently -  # active etc. -  function _rbfu_rubies_print() { -    local rb rb_out -    rb=$(basename $1) -    rb_out="$rb" -    [[ -h $1 ]] && rb_out="$rb_out${fg[green]}@${reset_color}" -    [[ "x$rb" == "x$2" ]] && rb_out="${fg[red]}$rb_out ${fg[red]}*${reset_color}" -    echo $rb_out -  } - -  # Public: Provide a list with all available rubies, this basically depends -  # on `ls -1` and .rfbu/rubies. Highlights the currently active ruby version -  # and aliases. -  function rbfu-rubies() { -    local rbfu_dir active_rb -    rbfu_dir=$RBFU_RUBIES -    active_rb=$RBFU_RUBY_VERSION -    [[ -z "$rbfu_dir" ]] && rbfu_dir="${HOME}/.rbfu/rubies" -    [[ -z "$active_rb" ]] && active_rb="system" -    _rbfu_rubies_print "${rbfu_dir}/system" $active_rb -    for rb in $(ls -1 $rbfu_dir); do -      _rbfu_rubies_print "${rbfu_dir}/${rb}" $active_rb -    done -  } - -  # Public: Create rvm_prompt_info command for themes compatibility, unless -  # it has already been defined. -  [ ! -x rvm_prompt_info ] && function rvm_prompt_info() { echo "${RBFU_RUBY_VERSION:=system}" } -fi +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. +[ ! -x rvm_prompt_info ] && function rvm_prompt_info() { echo "${RBFU_RUBY_VERSION:=system}" } | 
