summaryrefslogtreecommitdiff
path: root/plugins/rbfu/rbfu.plugin.zsh
diff options
context:
space:
mode:
authorHenry Yan <yanhonglei@gmail.com>2012-07-17 00:36:50 +0800
committerHenry Yan <yanhonglei@gmail.com>2012-07-17 00:36:50 +0800
commit4a11d2c35c7a526e648b37a5b02b7695be46b16a (patch)
tree1eb542466758885ee40f3f60cc57d6438f38dc4d /plugins/rbfu/rbfu.plugin.zsh
parente9feccf6a94f9f5238ff0b3501f62575d14ae148 (diff)
parent11034217a7ea3cffe6e0fe631837c518b8c7e1a5 (diff)
downloadzsh-4a11d2c35c7a526e648b37a5b02b7695be46b16a.tar.gz
zsh-4a11d2c35c7a526e648b37a5b02b7695be46b16a.tar.bz2
zsh-4a11d2c35c7a526e648b37a5b02b7695be46b16a.zip
merge from upstream master
Diffstat (limited to 'plugins/rbfu/rbfu.plugin.zsh')
-rw-r--r--plugins/rbfu/rbfu.plugin.zsh42
1 files changed, 42 insertions, 0 deletions
diff --git a/plugins/rbfu/rbfu.plugin.zsh b/plugins/rbfu/rbfu.plugin.zsh
new file mode 100644
index 000000000..008485205
--- /dev/null
+++ b/plugins/rbfu/rbfu.plugin.zsh
@@ -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