mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-29 01:00:08 +00:00
provide plugin for rbfu the ruby version switcher
Evaluates $(rbfu --init --auto) if rbfu is installed on the system, also has a custom rbfu-rubies method which lists the installed rubies which are available to rbfu. For compatibility with themes, also creates the rvm_prompt_info function, so existing themes should work out of the box.
This commit is contained in:
parent
d165a84dc0
commit
e3ff4b58c6
1 changed files with 42 additions and 0 deletions
42
plugins/rbfu/rbfu.plugin.zsh
Normal file
42
plugins/rbfu/rbfu.plugin.zsh
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
# 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
|
||||||
|
|
||||||
|
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
|
Loading…
Reference in a new issue