summaryrefslogtreecommitdiff
path: root/plugins/rbfu
diff options
context:
space:
mode:
authorMarc Cornellà <hello@mcornella.com>2021-12-13 12:14:45 +0100
committerMarc Cornellà <hello@mcornella.com>2021-12-13 17:14:25 +0100
commit7b12fa9799edf07547cf5a55cf6518a4cb4c4852 (patch)
tree48b1c60496a6e152f79ef6fe50dac24dea53064f /plugins/rbfu
parente3bb6e685dc0325f472a4cfadb9847add12ec699 (diff)
downloadzsh-7b12fa9799edf07547cf5a55cf6518a4cb4c4852.tar.gz
zsh-7b12fa9799edf07547cf5a55cf6518a4cb4c4852.tar.bz2
zsh-7b12fa9799edf07547cf5a55cf6518a4cb4c4852.zip
style(rbfu): clean up code
Diffstat (limited to 'plugins/rbfu')
-rw-r--r--plugins/rbfu/README.md1
-rw-r--r--plugins/rbfu/rbfu.plugin.zsh76
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}" }